1.最大公约数
/* * GCD(A,B)=GCD(A,B mod A)循环求模实现最大公约数 */public class Gcd { public static void main(String[] args) { int a,b,r; Scanner sc=new Scanner(System.in); a=sc.nextInt(); b=sc.nextInt(); r=a%b; while(r!=0){ a=b; b=r; r=a%b;//一种类似方法的重用,靠循环实现 } System.out.println(b); }}2.最小公倍数
/* * LCM(a,b)*GCD(a,b)=a*b--->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=sc.nextInt(); int b=sc.nextInt(); int r=a%b; int mid=a*b; // 保存之前的a*b,因为后面的a,b均已改变 int m; while(r!=0){ a=b; b=r; r=a%b; } m=mid/b; System.out.println(m); }}3.n个数求最大公约数
/* * 实现了不间断输入整数求最大公约数 */public class NGcd2 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int b; int c=0; while((b=sc.nextInt())!=0){//输入为0时表示结束,输入非零整数即展开计算最大公约数 int r=a%b; while(r!=0){ a=b; b=r; r=a%b; } c=b; //把每次求得的b传出去,因为下一轮的输入将覆盖前面计算的最大公约数 } System.out.println(c); }}
4.求数根
/* * 求一个数的数根,即为一个n位数的各个位上数字之和,结果若为大于9的数,则继续求其数根,直到结果不超过一位数为止. */public class NumRoot { public static void main(String[] args) { int num,sum=0; Scanner sc=new Scanner(System.in); num=sc.nextInt(); while(num!=0){ if(num<=9) break; sum=0; while(num>0){//想重复利用此代码段对求得数字继续求数根,但又没必要写一个方法,只需将此代码段包含在一个循环里 sum+=num%10; num/=10; } num=sum; } System.out.println(num); }}
5.百元百鸡
/** * “百元买百鸡”是我国古代的著名数学题。题目这样描述:3元可以买1只公鸡,2元可以买一只母鸡,1元可以买3只小鸡。用100文钱买100只鸡, * 那么各有公鸡、母鸡、小鸡多少只?与之相似,有"鸡兔同笼"问题。 */public class BuyChicken { public static void main(String[] args) { for(int x=1;x<=24;x++){ int y=(200-8*x)/5; if((200-8*x)%5==0){ int z=100-x-y; System.out.print(x+" "); System.out.print(y+" "); System.out.print(z); System.out.println(); } } }}6.水仙花数
/* *求(100-999内的)水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。 */public class WaterFlower { public static void main(String[] args) { int a; for(int i=100;i<1000;i++){ int sum=0,num=i; while(num>0){ a=num%10;//分解三位数,每次取个位上的数字 sum+=a*a*a; num/=10;//个位上数字取走后就可移除,用十位数代替 } if(sum==i) System.out.println(i); } }}