A*B Problem

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
 
描述

设计一个程序求出A*B,然后将其结果每一位相加得到C,如果C的位数大于等于2,继续将C的各位数相加,直到结果是个一位数k。

例如:

6*8=48;

4+8=12;

1+2=3;

输出3即可。

 
输入
第一行输入一个数N(0<N<=1000000),表示N组测试数据。
随后的N行每行给出两个非负整数m,n(0<=m,n<=10^12)。
输出
对于每一行数据,输出k。
样例输入
3
6 8
1234567 67
454 1232
样例输出
3
4
5
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int maxn = ;
const int moder = ;
ll pow_mod(ll x,ll p)
{
ll ans = ;
while(p){
if(p&) ans = (ans*x)%moder;
x = (x*x)%moder;
p = p>>;
}
return ans;
} int main()
{
int t;
scanf("%d",&t);
while(t--){
ll a,b;
scanf("%lld%lld",&a,&b);
if(a == ||b == ){
printf("0\n");
continue;
}
int temp = (a%*b%)%;
if(temp ==) temp = ;
printf("%d\n",temp);
}
return ;
}

用到 1.同余定理: (a + b) % c == (a % c + b % c) % c;

2.  k * 10^m % 9 == k % 9。

综上,设a == b *100 + c * 10 + d;  A == b + c + d,则a % 9 == (b*100 % 9 + c*10 % 9 + d % 9) % 9 == (b + c + d) % 9 % 9 == (b + c + d) % 9 == A % 9;。

最新文章

  1. ILGenerator.Emit动态 MSIL编程(一)之基础
  2. webdriver实用指南迁移至gitbbok并改名为selenium webdriver从入门到提高
  3. 创建一个spring helloworld
  4. GCD的简单封装
  5. ExtJs之Ext.util.CSS
  6. stream~filestream
  7. TCP/IP详解之:UDP协议
  8. 省份、城市、区县三级联动Html代码
  9. ES5和ES6两个值的比较
  10. Socket编程实践(4) --多进程并发server
  11. emWin监护仪界面设计,含uCOS-III和FreeRTOS两个版本
  12. 将BUG管理工具(禅道)部署到服务器(测试服务器、云服务器)
  13. 03-12_MBean层次结构
  14. swap(十六)
  15. 180425、cookie工具类
  16. train_val.prototxt文件和deploy.prototxt文件开头的区别
  17. 2019-03-29-day022-封装与类方法与静态方法
  18. 【BZOJ1067】【SCOI2007】降雨量
  19. iredmail安装问题
  20. linux下命令行打开文件管理器

热门文章

  1. php array_mutisort
  2. fake-useragent,python爬虫伪装请求头
  3. 带宽、流量、CDN
  4. scp无密码访问scp -i
  5. 【Android】ListView、RecyclerView异步加载图片引起错位问题
  6. Ubuntu16 安装Jira
  7. python将一些朋友的姓名存储在一个列表中,访问该列表中的每个元素,从而将每个朋友的姓名都打印出来
  8. NUMA架构的优缺点
  9. jquery获取select选中项的文本
  10. GET 对比 POST