Problem 2089 数字游戏
来源:互联网 发布:java private和protect 编辑:程序博客网 时间:2024/04/23 16:51
Problem Description
现在,给你2个整形数字A和B。你的任务就是计算出A+B的结果C后,统计C中数字5出现的次数。
Input
输入数据第一行包含一个整数T,表示测试数据的组数。对于每组测试数据:
输入两个整数a,b(-2*10^9<a,b<2*10^9)。两个数字之间用空格隔开。
Output
对于每组测试数据,输出一行,包含一个整数,表示数字5出现的次数。
Sample Input
2
4 5
33 22
Sample Output
0
2
算法没什么难的,就是处理大数据罢了,这里用的是Java中的BigInteger,蛮方便的,只要从最低位依次判断是否为5,一直到最高位,记录下为5的个数就可以了。
要提交的时候把Fzu2089改成Main即可
代码如下:
import java.math.BigInteger;import java.util.Scanner;public class Fzu2089 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int T = s.nextInt();while(T-->0){String firststr = s.next();String secondstr = s.next();BigInteger first = new BigInteger(firststr);BigInteger second = new BigInteger(secondstr);BigInteger sum = first.add(second);BigInteger iCount = new BigInteger("0");//记录5出现的次数BigInteger iFactor = new BigInteger("1");//记录当前位,个位,百位,千位..BigInteger iCurrNum = new BigInteger("0");//记录当前的数字BigInteger zero = new BigInteger("0");BigInteger one = new BigInteger("1");BigInteger ten = new BigInteger("10");BigInteger five = new BigInteger("5");while(sum.divide(iFactor).compareTo(zero)!=0){iCurrNum = sum.divide(iFactor).mod(ten);//个数是什么数字,百位是什么数字,千位是什么数字..if(iCurrNum.compareTo(five)==0){iCount = iCount.add(one);//如果当前位是5,则加1.}iFactor = iFactor.multiply(ten);//从个位变成百位,千位,万位,直到最高位为至}System.out.println(iCount.toString());}}}
- Problem 2089 数字游戏
- Problem 2089 数字游戏
- fzu——Problem 2089 数字游戏
- Problem 2089 数字游戏 大数问题
- FZU 2089 数字游戏
- FZU 2089 数字游戏
- FZU 2089 数字游戏
- Problem E: 小力的数字游戏 解题报告
- 数字游戏
- 数字游戏
- 数字游戏
- 数字游戏
- 数字游戏
- 数字游戏
- 数字游戏
- 数字游戏
- 数字游戏
- 数字游戏
- Core Data版本更新进行Migration时renaming identifier设置的注意事项
- 2d横版过关游戏
- HBASE介绍
- 图标数据管理render。c
- asp aspx 注入练习代码
- Problem 2089 数字游戏
- C# winform WebBrowser 让网页在内部打开
- 待解决的问题汇总
- wsdl生成Webservice客户端和服务端C#代码
- SingleTask和SingleInstance详解
- pl/sql developer遇到关于查询显示的问题
- windows server为什么不流行?
- cocos2d-x (四)粒子特效相关说明
- 1118 反弹的小球