maxiao


私信TA

用户名:651158933

访问量:10642

签 名:

加油写代码

等  级
排  名 1407
经  验 2907
参赛次数 0
文章发表 16
年  龄 0
在职情况 学生
学  校 燕山大学
专  业

  自我简介:

想得到什么,就去追求什么。

#include <stdio.h>
#include <math.h>
/********阶乘********/ 
int factorial(int n)
{
    int product = 1;
    for( n; n > 0; n--)
        product *= n;
    return product;
}
int main(void) 
{   
    int i, j, k, l;
    int num, n, n_wei, sum;
    
    for(i = 1; i <= 9; i++)//将十万以内的数按首位数字分9类
    {
        for(j = 0; j < 5; j++)
        {
            n = i * pow(10, j); //分别将1,10,100,1000,10000,2,20作为起始数字
            for(k = 0; k < pow(10, j); k++) // 
            {
                num = n + k;
                sum = 0;
                while(num > 0)
                {
                    sum += factorial(num % 10); 
                    num /= 10;
                }
                if(sum == (n + k)) printf("%d ", n + k);//输出符合的阶乘和数
            }
        }
    }
	return 0;
}

有什么不懂的可以留言。

 

0.0分

24 人评分

  评论区

#include<stdio.h>
int main()
{
printf("1 145 2 40585");
return  0;
}
2021-07-16 10:02:29
精妙精妙
2020-12-22 20:36:57
#include<stdio.h>
int fun(int n)
{

	if (n == 0)
		return 1;
	else if (n == 1)
		return 1;
	else
		return n * fun(n - 1);
}
int main()
{
	int sum = 0, a, b, i,q;

	for (i = 1; i <= 100000; i++)
	{
		q = 1; sum = 0;
		b = i;
		while (q)
		{
		
			a = b % 10;
			b = b / 10;
			sum += fun(a);

			if (b == 0)
			{
				q = 0;
				if (sum == i)
				{
					printf("%d ", i);
					q = 0;
				}
			}
		}
	}
	
	return 0;
}
我这为什么错误
2020-11-03 22:21:33
好尴尬,比我少了一半了
2019-12-14 11:04:43
比我少一半代码
2019-09-19 22:47:28
  • «
  • 1
  • »