本帖最后由 NorviNS松鼠 于 2013-7-1 00:21 编辑
参与人ID(UID):NorviNS松鼠
参与类型: A 编程题目类
答案:
第一题:import java.awt.Dialog.ModalExclusionType; import java.util.ArrayList;
public class Question1 { //一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。 //结果为:6,28,496 ArrayList<Integer> yinZiList = new ArrayList<>(); ArrayList<Integer> yesList = new ArrayList<>();
public static void main(String[] args){ Question1 question = new Question1(); question.start(); }
public void start(){ for(int i=1;i<1000;i++){ if(check(i)){ yesList.add(i); } }
System.out.println(yesList); }
public boolean check(int i){ boolean oYes = false; int sum = 0;
for(int j=1;j<i;j++){ if(i%j == 0){ sum = sum + j; } }
if(sum == i){ oYes = true; } return oYes; } }
第二题:public class Question2 { //一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? //答案:第10次反弹0.09765625米 // 第10次落地时共经过51200.0米
public static void main(String[] args){ Question2 question = new Question2(); question.start(); }
public void start(){ double startHeight = 100; int time = 10; System.out.println("第"+time+"次反弹"+calculateHeight(startHeight,time)+"米"); System.out.println("第"+time+"次落地时共经过"+calculateLength(startHeight,time)+"米"); }
public double calculateHeight(double h,int time){ double lastHeight = h;
for(int i=0;i<time;i++){ lastHeight = lastHeight/2; }
return lastHeight; }
public double calculateLength(double h,int time){ double length = h;
for(int i=1;i<time;i++){ length = length * 2; }
return length; } }
第四题:public class Question4 { //有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。 //问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? //答案:18
public static void main(String[] args){ Question4 question = new Question4(); question.start(); }
public void start(){ int fifth = 0; int time = 5; int first = 10; fifth = getAnswer(time,first); System.out.println(fifth); }
private int getAnswer(int time,int first) { int age = first;
for(int i=1;i<time;i++){ age = age + 2; }
return age; } }
第九题:import java.util.ArrayList; import java.util.Scanner;
public class Question9 { //输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
public static void main(String[] args){ Question9 question = new Question9(); question.start(); }
public void start(){ System.out.println("请逐个输入数组中的数字,以ok结束输入。"); Scanner scanner; String getInput; int inputNum; ArrayList<Integer> inputList = new ArrayList<>(); boolean flag = true;
while(flag){ scanner = new Scanner(System.in); getInput = scanner.next(); if(getInput.equals("ok")){ flag = false; } else{ inputNum = Integer.parseInt(getInput); inputList.add(inputNum); } } System.out.println("输入完毕,数组为:"+inputList); change(inputList); }
public void change(ArrayList<Integer> inputList){ int max = inputList.get(0); int min = inputList.get(0); int maxIndex = 0; int minIndex = 0; for(int i=0;i<inputList.size();i++){ if(inputList.get(i)>max){ max = inputList.get(i); maxIndex = i; } else if(inputList.get(i)<min){ min = inputList.get(i); minIndex = i; } } inputList.set(maxIndex, inputList.get(0)); inputList.set(0, max); inputList.set(minIndex, inputList.get(inputList.size()-1)); inputList.set(inputList.size()-1, min); System.out.println(inputList); } }
【完了我竟然忘了这回事!!!TAT。。。都没怎么调试应该大丈夫吧。。。。。。原谅我】 |