Accept: 1164    Submit: 3722
Time Limit: 1000 mSec    Memory Limit :
32768 KB

Problem Description

对于任意两个正整数a,b(0<=a,b<10000)计算ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。

Input

输入有多组数据,每组只有一行,包含两个正整数a,b。最后一组a=0,b=0表示输入结束,不需要处理。

Output

对于每组输入数据,输出ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。

Sample Input

2 3
5 7
0 0

Sample Output

8
5

Source

FZUPC Warmup 2005

【分析】:前几天刚好发布过一片关于同余运算结论的博客。
1.九余数定理:一个数的每位数字之和等于这个数对9取余,如果等于0就是9

2.假设一个数的各位数字分别是a1,a2...an ,则 (a1a2...an)%9=(a1+a2+...+an)%9
3.计算a^b各位数字的和的各位数字的和的各位数字的和的各位数字的和,可以转化为(a*a*a*...)%9 的结果,又有公式(a*b)%n = ((a%n)*(b%n)) % n;则可以循环的求解。
注意用在线算法,边算边取模,就不会T。就是说一个一个的乘即可,变乘边取模。这里只是针对n不大的情况。如果n太大,利用快速幂即可。
【代码】:

#include <iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<streambuf>
#include<cmath>
#include<string>
using namespace std;
#define ll long long
#define oo 10000000 int x,n;
ll sum;
int main(){
while (~scanf("%d%d",&x,&n),x&&n){
sum=;
for (int i=;i<n;i++)
sum=(sum*x)%; if (sum==)
printf("9\n");
else
printf("%lld\n",sum);
}
return ;
}

数论

【同类】:HDU-人见人爱A^B

最新文章

  1. php中环境变量
  2. 有1,2,3一直到n的无序数组,排序
  3. Android常见控件— — —EditText
  4. ruby中字符的转换
  5. git 忽略文件夹
  6. Flyway--数据库版本管理和控制工具
  7. 简述Java变量和强制转换类型
  8. Fragment基础操作
  9. Qt 快捷键
  10. 解决nginx下connect() to 127.0.0.1:3000 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: 错误信息
  11. JAVA 没有重载运算符,那么 String 类型的加法是怎么实现的,以及String类型不可变的原因和好处
  12. centos重启报错Umounting file systems:umount:/opt:device is busy
  13. 搭建ssh框架项目(一)
  14. Simple Logging Facade for Java 简单日志门面(Facade)
  15. 基于duxshop遍历无限级分销用户的纵向递归
  16. 一个flume agent异常的解决过程记录
  17. js删除字符串的最后一个字符三种方法
  18. [C#][控件]WebBrowser 使用范例
  19. 欢迎来怼---作业要求 20171015 beta冲刺贡献分分配规则
  20. 160526、高并发之LVS搭建负载均衡

热门文章

  1. linux 查看CPU内存 网络 流量 磁盘 IO
  2. 大数模板Java
  3. Android如何添加多张引导页
  4. AngularJS 之1-初识
  5. mysql中外联和 is null 结合使用
  6. 【Word Break】cpp
  7. Leetcode 623.在二叉树中增加一行
  8. springdata jpa
  9. HDU 3395 Special Fish(拆点+最大费用最大流)
  10. 本文将介绍“数据计算”环节中常用的三种分布式计算组件——Hadoop、Storm以及Spark。