四、最小公倍数最大公约数问题:
分析:两个数的最小公倍数等于两个数相乘再除以他们的最大公约数,因此只要求出最大公约数就可以啦。
package JingDian; public class yuebeishu { //用来求最大公约数的函数(debug看结果吧,好巧妙) public static int gcd(int m,int n) { while(true) { if((m=m%n)==0) { return n; } if((n=n%m)==0) { return m; } System.out.println("m值"+m+" n值"+n); } } public static void main(String[] args) throws Exception { int a=23,b=32; int c=gcd(a,b); System.out.println("最小公倍数:"+a*b/c+" 最大公约数:"+c); } }
五、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222
package JingDian; import java.io.InputStreamReader; import java.util.Scanner; public class dieshuhe { public static void main(String[] args) { System.out.println("请输入最大的a的值:"); int result =0; int st = 0; int i=1; //获取键盘输入 Scanner sc = new Scanner(new InputStreamReader(System.in)); String input = sc.next(); String [] str=new String[input.length()]; for(int tmp=0;tmp<input.length();tmp++) { if(i>input.length()) { break; } //str[tmp]中装的是input的前tmp个字母因此本程序不仅可以计算当a输入为4444时候4+44+444+4444这样的表达式, //还可以计算a暑促为432时4+43+432这样的表达式,只要输入最大的那个数就可以了。 str[tmp]=input.substring(0,i); i++; //将str[tmp]解析为整数进行相加 st = Integer.parseInt(str[tmp]); result = result + st; } System.out.println(result); } }
六、排列组合数问题
题目: 有数字1,2,3,4,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:先组成数,再去掉重复的数字(so easy)
package JingDian; public class pailieshu { public static void main(String[] args){ for(int i=1;i<=4;i++) { for(int j=1;j<=4;j++) { for(int k=1;k<=4;k++) { if(i!=j&&j!=k&&k!=i) { System.out.println(i*100+j*10+k); } } } } } }