1、A+B
100以内的A + B问题
题目描述:
小明只认识100以内的正整数,如果大于100的正整数,他只会拿这个数的后两位做运算。
输入
每行两个整数分别为A和B,中间以空格分开,数据有多组。
输出
输出小明做完A + B之后的结果。
public class Test{
public static void main(String[] args){
int a = 0,b = 0;
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
a = sc.nextInt();
b = sc.nextInt();
System.out.println(((a % 100) + (b % 100))%100);
}
}
}
在要拆分一个数时或是获取一个数的个位一般都是用%,将一个数进行拆分。
2、计算有多少次进位
题目描述
输入两个n位的正整数A、B(n≤9),计算A+B过程中有多少次进位。
输入
每行两个整数分别为A和B,中间以空格分开,数据有多组。
输出
输出A+B计算过程中的进位次数。
public class jinwei {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0,b = 0;
while(sc.hasNext()) {
a = sc.nextInt();
b = sc.nextInt();
int count = 0,jw = 0;
for(int i = 0;i <= 9;i ++) {
jw = (a % 10 + b % 10 + jw) >= 10 ? 1 : 0;
count += jw;
a /= 10;
b /= 10;
}
System.out.println(count);
}
}
}
灵活运用三目运算,将小学学的加法进位运算进行模拟,若是一下不知道怎么运算就一部部拆分。
3、数位反转
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
int sum = 0;
while(n > 0){
sum = sum * 10 + n % 10;
n = n / 10;
}
System.out.println(sum);
//运用String方法
——————
System.out.println(new StringBuilder(String.valueOf(n).reverse().toString());//没考虑 520情况
}
}
1、最大公约数
一个长为a,宽为b的广场,现在要给该广场铺上一层瓷砖,瓷砖必须是正方形的,问你瓷砖最大边长为多少?
public class Gcd {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0,b = 0;
while(sc.hasNext()) {
a = sc.nextInt();
b = sc.nextInt();
System.out.println(gcd(a,b));
}
}
public static int gcd(int a,int b) {
return b == 0? a:gcd(b,a%b);
}
public static int gcd1(int a,int b) {
while(b > 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
}
2、最小公倍数
lcm(a,b) = (a*b) / gcd(a,b)
public class Lcm {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0,b = 0;
while(sc.hasNext()) {
a = sc.nextInt();
b = sc.nextInt();
System.out.println(lcm(a,b));
}
}
public static int lcm(int a,int b) {
return (a * b) / gcd(a,b);
}
public static int gcd(int a,int b) {
return b == 0? a : gcd(b,a%b);
}
}