算法题练习系列之(九):部分A+B
2017-07-01 20:52
232 查看
--------------------------------------------------------------------------------------------------------------------------------------------------------
时间限制:1秒 空间限制:32768K 代码长度限制 100 KB
--------------------------------------------------------------------------------------------------------------------------------------------------------
[b]输入描述:[/b]
[b]输出描述:[/b]
[b]输入例子:[/b]
[b]输出例子:[/b]
--------------------------------------------------------------------------------------------------------------------------------------------------------
[b]实现思路:[/b]
(1).将A、B转换为字符数组,统计DA、DB出现的次数;
(2).将统计次数转换为整型数字进行相加即可。
--------------------------------------------------------------------------------------------------------------------------------------------------------
import java.util.Scanner;
public class Main_a1_006 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String a = scan.next();
int da = scan.nextInt();
String b = scan.next();
int db = scan.nextInt();
System.out.println(dealPNum(a,da,b,db));
}
}
public static long dealPNum(String a,int da,String b,int db){
char[]charA = a.toCharArray();
char[]charB = b.toCharArray();
char daC = (char)(da + 48);
char dbC = (char)(db + 48);
int aCount = 0;
int bCount = 0;
for (int i = 0; i < charA.length; i++) {
if(charA[i] == daC){
aCount++;
}
}
for (int i = 0; i < charB.length; i++) {
if(charB[i] == dbC){
bCount++;
af8b
}
}
long pa = 0;
if(aCount > 0){
String strA = "";
for (int i = 0; i < aCount; i++) {
strA = strA + da;
}
pa = Long.parseLong(strA);
}
long pb = 0;
if(bCount > 0){
String strB = "";
for (int i = 0; i < bCount; i++) {
strB = strB + db;
}
pb = Long.parseLong(strB);
}
return pa + pb;
}
}
时间限制:1秒 空间限制:32768K 代码长度限制 100 KB
--------------------------------------------------------------------------------------------------------------------------------------------------------
题目描述
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6, 则A的“6部分”PA是66,因为A中有2个6。
现给定A、DA、B、DB,请编写程序计算PA + PB。
[b]输入描述:[/b]
输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。
[b]输出描述:[/b]
在一行中输出PA + PB的值。
[b]输入例子:[/b]
3862767 6 13530293 3
[b]输出例子:[/b]
399
--------------------------------------------------------------------------------------------------------------------------------------------------------
[b]实现思路:[/b]
(1).将A、B转换为字符数组,统计DA、DB出现的次数;
(2).将统计次数转换为整型数字进行相加即可。
--------------------------------------------------------------------------------------------------------------------------------------------------------
import java.util.Scanner;
public class Main_a1_006 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String a = scan.next();
int da = scan.nextInt();
String b = scan.next();
int db = scan.nextInt();
System.out.println(dealPNum(a,da,b,db));
}
}
public static long dealPNum(String a,int da,String b,int db){
char[]charA = a.toCharArray();
char[]charB = b.toCharArray();
char daC = (char)(da + 48);
char dbC = (char)(db + 48);
int aCount = 0;
int bCount = 0;
for (int i = 0; i < charA.length; i++) {
if(charA[i] == daC){
aCount++;
}
}
for (int i = 0; i < charB.length; i++) {
if(charB[i] == dbC){
bCount++;
af8b
}
}
long pa = 0;
if(aCount > 0){
String strA = "";
for (int i = 0; i < aCount; i++) {
strA = strA + da;
}
pa = Long.parseLong(strA);
}
long pb = 0;
if(bCount > 0){
String strB = "";
for (int i = 0; i < bCount; i++) {
strB = strB + db;
}
pb = Long.parseLong(strB);
}
return pa + pb;
}
}
相关文章推荐
- 算法题练习系列之(三):成绩排序
- 算法题练习系列之(六):数素数
- 算法题练习系列之(二十七): 有理数四则运算
- 算法题练习系列之(三十三): 有几个PAT
- 算法题练习系列之(三十二): 到底买不买
- 算法题练习系列之(一):守形数
- 算法题练习系列之(三十八): 斐波那契凤尾
- 算法题练习系列之(二十四): 查验身份证
- 算法题练习系列之(二十三): 完美数列
- 算法题练习系列之(三十五): NowCoder数列
- 算法题练习系列之(七):福尔摩斯的约会
- 算法题练习系列之(十四): 个位数统计
- 算法题练习系列之(十三): 月饼
- 算法题练习系列之(二十五): 挖掘机技术哪家强
- 算法题练习系列之(十九): 程序运行时间
- 算法题练习系列之(五):数字分类
- 算法题练习系列之(十二): 数字黑洞
- 算法题练习系列之(十六): 组个最小数
- 算法题练习系列之(二十九): 跟奥巴马一起编程
- 代码练习系列:问题 H 部分A+B (15)