任务和代码
/*
*Copyright (c)2016,CSDN学院 | C语言及程序设计初步
*All rights reserved.
*文件名称:p39-1.c
*作 者:管运煌
*完成日期:2016年6月13日
*求三位数以内所有n=a!+b!+c!的数,a、b、c为n的个、十、百位。
*/
#include <stdio.h>
int main()
{
int a,b,c,n,sum; //a,b,c,为n的个十百位上的数,n为三位数的数,sum为阶层和
int i,j,k,l,m,g; //l m g 为个十百位数的阶层值。
for (n=100;n<1000;n++) //
{
l=1;
m=1;
g=1;
sum=0;
for (i=1,a=n/100;i<=a;i++) //百位数的阶层
{
l*=i;
}
for (j=1,b=(n/10)%10;j<=b;j++)//十位数的阶层
{
m*=j;
}
for (k=1,c=n%10;k<=c;k++) //个位数的阶层
{
g*=k;
}
sum=l+m+g;
if (sum==n) //判断是否相等
printf ("%d=%d!+%d!+%d!",n,a,b,c);
}
}
运行结果
知识总结
灵活运用循环嵌套,数的分离
心得体会
还是用的正常数学解题思维来做的