首页 > 代码库 > project euler-34
project euler-34
145是个奇怪的数字,因为1!+ 4! + 5! = 1 + 24 + 120 = 145。
请求出能表示成其每位数的阶乘的和的所有数的和。
请注意:由于1! = 1和2! = 2不是和,故它们并不包括在内。
---------------------------------------------------
原来0的阶乘是1。。。。我弱智了。。。
粗略的运算一下数据范围,发现不会超过1000W。
于是,暴力吧。。
(其实结果只有两个数符合规律。。。)
#include<stdio.h> #include<algorithm> #include<iostream> #include<stdlib.h> #include<vector> #include<queue> #include<string.h> #include<math.h> using namespace std; int fat[10]; void init() { fat[0]=1; fat[1]=1; for(int i=2;i<=9;i++) { fat[i]=fat[i-1]*i; } } int cal(int x) { int ans=0; while(x) { ans=ans+fat[x%10]; x=x/10; } return ans; } int main() { init(); int sum=0; for(int i=10;i<=100000000;i++) { if(i==cal(i)) { sum+=i; } } cout<<sum<<endl; return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。