欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》
问题:1258 - 求一个三位数
类型:自定义函数、简单循环
题目描述:
求这样一个三位数,该三位数等于其每位数字的阶乘之和, 即
abc=a!+b!+c!。n! 表示 n 的阶乘, n!=1×2×3×⋯×n,如:5!=1×2×3×4×5)
输入:
无
输出:
输出这个数。
完整代码如下:
#include<bits/stdc++.h>
using namespace std;int jc(int t){int res=1;while(t>1){res*=t;--t;}return res;
}
int main(){//一、分析问题//已知:所有的三位数。 //未知:找出符合条件的数。 //关系: 该三位数等于其每位数字的阶乘之和。 //二、定义变量(已知、未知、关系) int g,s,b;//三、输入已知//四、根据关系计算for(int i=100;i<1000;++i){g=i%10;s=i/10%10;b=i/100;g=jc(g);s=jc(s);b=jc(b);//五、输出未知if(i==g+s+b){cout<<i;break;}} return 0;
}