你心里想好一个1~100之间的整数x,将它分别处以3、5和7并且得到三个余数。你把这三个余数告诉计算机,计算机马上得到这个数。
游戏过程如下:
Please think of a number between 1 and 100
Your number divided by 3 has a remainder of ?1
Your number divided by 5 has a remainder of ?0
Your number divided by 7 has a remainder of ?5
Your number is 40
问题分析:找出余数与求解数之间的关系,建立问题的数学模型。
数学模型:
1) 不难理解当s=u+3*v+3*w时,s除以3的余数与u除以3的余数是一样的。
2) 对于s=c*u+3*v+3*w,当c除以3余1时,s除以3的余数与u除以3的余数是也是一样的。
1 import java.util.*; 2 public class gongbeishu { 3 public static void main(String[] args) { 4 Scanner in=new Scanner(System.in); 5 System.out.println("Please think of a number between 1 and 100"); 6 System.out.print("Your number divided by 3 has a remainder of ?"); 7 int a=in.nextInt(); 8 System.out.print("Your number divided by 5 has a remainder of ?"); 9 int b=in.nextInt(); 10 System.out.print("Your number divided by 7 has a remainder of ?"); 11 int c=in.nextInt(); 12 int d=70*a+21*b+15*c; 13 while (d>100) { 14 d-=105;//105为3、5、7的最小公倍数 15 System.out.println("Your number is "+d); 16 } 17 } 18 }