Digit Sum of N!(牛客网,递归)
程序员文章站
2022-05-14 18:34:15
...
Digit Sum of N!(牛客网,递归)
今天的题比较简单,
但是还有另一种方法我推不出来
(请各位路过的大佬知道的可以私信我,谢谢)
题目:
我的代码很简单,就是列举了许多数据,然后得出一个比较简单的规律
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main(int argc, char** argv) {
int n;
while(scanf("%d",&n)!=EOF){
if(n==1){
cout<<1<<endl;
}
else if(n==2){
cout<<2<<endl;
}
else if(n==3||n==4){
cout<<6<<endl;
}
else if(n==5){
cout<<3<<endl;
}
else{
cout<<9<<endl;
}
}
return 0;
}
参考别人的代码,能逆推出来结果,但看不懂他写代码的思路
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
int F(int n)
{
int sum=n,i,k,com;
char name[1000];
for(i=n-1;i>1;i--)
{
com=0;
sprintf(name,"%d",sum);
//printf("---%s\n",name);
for(k=0;k<strlen(name);k++)
{
com+=i*(name[k]-'0');
//printf("+++%c\n",name[k]);
}
sum=com;
}
printf("%d\n",sum);
return sum;
}
int main()
{
int n;
while(scanf("%d",&n))
{
printf("%d\n",(F(n)/10)+(F(n)%10));
}
return 0;
}