一个正整数如果等于组成它的各位数字的阶乘之和,该整数称为阶乘和数。 例如,145=1!+4!+5!,则145是一个三位阶详细和数。 请问:共有多少个阶乘和数?

来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/04/26 17:45
#include <stdio.h>#include <string.h>void sort(char s[][15],int n)      //字符串排序{    char t[15];    int i,j;    for(i=0;i<n-1;i++)     for(j=0;j<n-1-i;j++)        if(strcmp(s[j],s[j+1])>0)        {            strcpy(t,s[j]);            strcpy(s[j],s[j+1]);            strcpy(s[j+1],t);        }}void itoa(int n,char s[])       //把数字转化为字符串{    int i,j;    char t;    for(i=0;n;i++)    {        s[i]=n%10+'0';        n/=10;    }    s[i]='\0';    for(i=0,j=strlen(s)-1;i<j;i++,j--)    {        t=s[i];        s[i]=s[j];        s[j]=t;    }}main(){    int a[10]={1},i,j=0,t,sum;       //a数组把1~9的阶乘存储起来    char s[10][15];                     //假设最多有10个数    for(i=1;i<=9;i++)        a[i]=a[i-1]*i;    for(i=1;i<=1000000;i++)    {        sum=0;        for(t=i;t;t/=10)            sum+=a[t%10];        if(i==sum)              //如果成立把这些数存储起来,            itoa(i,s[j++]);    }    sort(s,j);                      //然后排序输出    for(i=0;i<j;i++)        printf("%s ",s[i]);}
阅读全文
0 0
原创粉丝点击