第1个回答 推荐于2016-06-01
import java.util.Scanner;
public class TestLoop {
public static void main(String[] args) {
System.out.println("所有能被7整除的数:");
print7Multiple(0);
System.out.println("\n能被7整除的前5个数:");
print7Multiple(5);
System.out.println();
leap(10);
outputInteger();
parseToBinary();
}
/**
* 第1题、第2题
* 打印0到50能被7整除的数
* @param n 如果n<=0则打印所有,否则打印前n个
*/
private static void print7Multiple(int n) {
int index = 0;
int i = 0;
while(i < 50) {
if(i % 7 == 0) {
index ++;
System.out.print(i + " ");
}
i ++;
if(n > 0) {
if(index == n) {
break;
}
}
}
}
private static final int MAX_HEIGHT = 100;
/**
* 第3题
* 求反高度
* @param n 反弹次数
*/
private static void leap(int n) {
double height = MAX_HEIGHT;
double formerHeight = 0; // 前一次反弹的高度,掉落时还会经过这个距离
if(n == 0) {
System.out.println("共经过" + height + "米");
return;
}
for(int i = 1; i <= n; i ++) {
double leapHeight = leapHeight(i);
height += formerHeight + leapHeight;
formerHeight = leapHeight;
}
System.out.println("第" + n + "反弹" + "共经过" + height + "米");
System.out.println("第" + n + "反弹" + leapHeight(n) + "米");
}
/**
* 第n次反弹的高度
* @param n 反弹次数
* @return 最大高度除以2的n次方
*/
private static double leapHeight(int n) {
return MAX_HEIGHT / Math.pow(2, n);
}
private static Scanner sc = new Scanner(System.in);
/**
* 第4题
* 任意输入一个整数,正序输出它的每一位
*/
private static void outputInteger() {
System.out.print("输入任意整数:");
int num = sc.nextInt();
String str = Integer.toString(num);
System.out.println("正序输出" + num + "的每一位:");
for(int i = 0; i < str.length(); i ++) {
System.out.println(str.charAt(i));
}
}
/**
* 第5题
* 输入十进制数转换成二进制输出
*/
private static void parseToBinary() {
System.out.print("请输入一个十进制数:");
int num = sc.nextInt();
System.out.print(num + "的二进制数为:");
System.out.println(Integer.toBinaryString(num));
}
}本回答被提问者采纳