本文主要是介绍FZU 1057,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Problem 1057 ab
Accept: 1164 Submit: 3722 Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
对于任意两个正整数a,b(0<=a,b<10000)计算a b各位数字的和的各位数字的和的各位数字的和的各位数字的和。
Input
输入有多组数据,每组只有一行,包含两个正整数a,b。最后一组a=0,b=0表示输入结束,不需要处理。
Output
对于每组输入数据,输出ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。
Sample Input
2 35 70 0
Sample Output
85
Source
FZUPC Warmup 2005找到这个规律就好了:10进制下,数字上各个位置上的数字之和等于这个数对9取余数
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<sstream>
#include<cctype>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI=acos(-1.0);
const double eps=1e-6;
const int INF=0x3f3f3f3f;
const int maxn=1234;int T;
int n,m;
int ans,flag;int main()
{int a,b;while(~scanf("%d %d",&a,&b)&&(a+b)){int ans=a;b--;while(b--){ans=((a%9)*(ans%9))%9;}if(ans)printf("%d\n",ans);else printf("9\n");}return 0;
}
这篇关于FZU 1057的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!