2017.8.16每天五个编程题(九)

来源:互联网 发布:数据立方体 编辑:程序博客网 时间:2024/06/06 09:12

这几天由于各种原因没有写逻辑编程题,会用这两天的时间慢慢补上,在这里对自己进行自我批评,不管再忙也应该空出时间来做题写博客,下面是第41到45题的解题方法和思路。

第四十一题:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?   

package com.sixth.java;/* * 题目:海滩上有一堆桃子,五只猴子来分。 * 第一只猴子把这堆桃子凭据分为五份,多了一个, * 这只猴子把多的一个扔入海中,拿走了一份。 * 第二只猴子把剩下的桃子又平均分成五份,又多了一个, * 它同样把多的一个扔入海中,拿走了一份, * 第三、第四、第五只猴子都是这样做的, * 问海滩上原来最少有多少个桃子?  * */public class Test41 {public static void main(String[] args) {System.out.println(s(10));}static int s(int i){int u = i;for(int x = 0;x<5;x++){if(i%5!=1){return s(u+1);}i = (i-1)/5*4;}return u;}}

运行结果:


第四十二题:809*??=800*??+9*??其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

package com.sixth.java;public class Test42 {/* * 题目:809*??=800*??+9*?? 其中??代表的两位数,8*??的结果为两位数, * 9*??的结果为3位数。求??代表的两位数,及809*??后的结果。 */public static void main(String[] args) {int i;boolean j = false;for (i = 10; i < 100; i++) {int k = 8 * i;int n = 9*i;if ((809 * i == 800 * i + 9 * i) && (k < 100)&&(n>=100)) {j = true;break;}}if(j ==false){System.out.println("没有这样的二位数!");}else{System.out.println("??是"+i+",809*??="+809*i);}}}
运行结果:



第四十三题:求0—7所能组成的奇数个数。

package com.sixth.java;/* * 题目:求0—7所能组成的奇数个数。 * */public class Test43 {public static void main(String[] args) {int sum = 0;int total = 0;// 0-7最多八位所以循环八次for (int i = 1; i < 9; i++) {if (i == 1) {sum = 4;// 一位的时候是1,3,5,7四位} else if (i == 2) {sum = sum * 7;// 二位的时候除了首位不能为0外有7种情况} else {sum = sum * 8;// 二位以上的时候在中间插入数字每多一位多加八中组合}total += sum;}System.out.println("一共可以组成:" + total + "个奇数。");}}
运行结果:


第四十四题:一个偶数总能表示为两个素数之和。

package com.sixth.java;import java.util.ArrayList;import java.util.Scanner;/* * 题目:一个偶数总能表示为两个素数之和。 * */public class Test44 {int a = 0;Scanner sc = new Scanner(System.in);public int input(){System.out.println("请输入一个数:");a= sc.nextInt();if(a%2!=0){System.out.println("你输入的数不是整数,请重新输入!");input();}return a;}public ArrayList<Integer> sushu(int a){ArrayList<Integer> list = new ArrayList<Integer>();list.add(1);for(int i = 2;i<a;i++){boolean n = true;for(int j = 2;j<i;j++){if(i%j==0){n = false;break;}}if(n){list.add(i);}}System.out.println(list);return list;} public void bijiao(ArrayList<Integer>list,int a){for(int i = 0;i<list.size();i++){for(int j =0; j<list.size();j++){if(a == list.get(i)+list.get(j)){ System.out.println("输入的偶数" + a + "是" + list.get(i)                       + "和" + list.get(j) + "这两个素数的和");  }}}}public static void main(String[] args) {Test44 test44 = new Test44();int a = test44.input();ArrayList<Integer>list = test44.sushu(a);test44.bijiao(list, a);}}

运行结果:


第四十五题:判断一个整数能被几个9整除

package com.sixth.java;import java.util.Scanner;/* * 题目:判断一个整数能被几个9整除 * */public class Test45 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数:");int a = sc.nextInt();int sum = 0;for(int i = 0;i<1000;i++){if(a%9==0){a = a/9;sum = sum+1;}else{break;}}System.out.println("这个数可以被"+sum+"个9整除。");}}

运行结果:




原创粉丝点击