369寝室是比较特殊的寝室,因为别的寝室都住了四个人,而369寝室只有三个人。也因为这个原因,寝室里的三位同学感情特别好。但是,毕业在即,三位小伙伴马上要分别。为了在未来的某个日子可以见面,三位小伙伴有了一个约定,假设在未来的某一年,三位小伙伴的年龄的末尾正好出现3、6、9三个数,那么他们会再次相聚。
现在问题来了,假设今年三位小伙伴的年龄分别是x,y,z,那么,他们三人最早几年后可以相聚呢?
输入格式:
输入数据包括三个整数x,y,z,分别表示三位伙伴的年龄。
输出格式:
如果小伙伴最早在n年后可以相见(不包括当前这一年),那么请输出这个n;如果100年内都不存在这样的情况,输出:so sad!
输入样例:
25 22 28
输出样例:
1
我认为这道题目唯一的一个难点就是找到年龄的最后一位,我原本想用把年龄转成字符串找最后一位,尝试之后发现代码比较复杂。
代码如下
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
int n=0;
int a1= scanner.nextInt();
int a2 =scanner.nextInt();
int a3= scanner.nextInt();//输入三位的年龄
while (n<=100){ //在一百年之内循环
n++; //每一年都要加1
int b1=(a1+n)%10;//算出每一年每个人年龄的个位数
int b2=(a2+n)%10;
int b3=(a3+n)%10;
if ((b1==3 &&b2==6&&b3 ==9)||(b1==3 &&b2==9&&b3 ==6)||(b1==6 &&b2==3&&b3 ==9)||(b1==9&&b2==3&&b3 ==6)||(b1==6&&b2==9&&b3 ==3)||(b1==9 &&b2==6&&b3 ==3)){
System.out.print(n);
return;//如果相见,直接结束程序
}
}
System.out.print("so sad!"); //如果不在一百年以内,
}
}