【C语言基础练习】有这样一些三位数,该三位数等于其每位数字的阶乘之和,即abc = a! + b! + c!。如(145=1!+4!+5!)

有这样一些三位数,该三位数等于其每位数字的阶乘之和,即abc = a! + b! + c!。如(145=1!+4!+5!)

1 #include<stdio.h>
  2  int main()
  3 {
  4   int num ; //定义这个未知数;
  5   int i ;
  6   int units,tens,hundreds;  //分别定义这个三位数的个位、十位、百位;
  7   for(num = 100 ; num < 1000 ; num ++)  //因为是个三位数,所以从100循环至999停止
  8   {
  9     units = num%10;
 10     tens = num/10%10;
 11     hundreds = num/100;  //每次循环的三位数都分别取出他的个、十、百位
 12     for(i = units - 1 ; i > 0 ; i--)
 13     {
 14       units *= i;  //算出个位的阶乘结果
 15     }
 16     for(i = tens -1 ; i > 0 ; i--)
 17     {
 18       tens *= i;  //算出十位的阶乘结果
 19     }
 20     for(i = hundreds - 1 ; i > 0 ; i--)
 21     {
 22       hundreds *= i;  //算出百位的阶乘结果
 23     }
 24     if(units + tens + hundreds == num)
 25     {
 26       printf("num = %d\n",num);  //如果该数的个、十、百位的阶乘结果相加等于这个循环内的num则取该值
 27     }
 28   }
 29   return 0;
 30 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值