标签:href ble output printf res using 公式 quic amp
1、链接
http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1140
2、题目
Description
定义一种操作为:已知一个数字,对其各位数字反复求和,直到剩下的数是一位数不能求和为止。
例如:数字2345,第一次求和得到2 + 3 + 4 + 5 = 14,再对14的各位数字求和得到1 + 4 = 5,得到5将不再求和。
现在请你求出对ab进行该操作后,最终得到的数字是什么。
Input
对于每组数据:
第一行,包含两个数字a(0 <= a <= 2000000000)和b(1 <= b <= 2000000000)
Output
对于每组数据:
第一行,输出对ab进行操作后得到的数字是什么
Sample Input
2 3
5 4
Sample Output
8
4
3、分析
a) 数字和公式(x + 8)%9+1(这个真的难!!!!!!)
b) 快速幂
4、代码
#include<bits/stdc++.h> using namespace std; int quick_pow(int a,int n) { if(n == 0) return 1; if(n == 1) return a%9; int res = quick_pow(a%9,n>>1); res = res * res % 9; if(n&1) { res *= a%9; } return res; } int main() { int a,b; while(~scanf("%d%d",&a,&b)) { if(a==0) printf("0\n"); else printf("%d\n",(quick_pow(a,b)%9+8)%9+1); } return 0; }
标签:href ble output printf res using 公式 quic amp
原文地址:http://www.cnblogs.com/hhkobeww/p/7896129.html