11、①3000米长的绳子,每天减一半。问多少天这个绳子会小于5米?不考虑小数。
②打印1-100之间非13的倍数,使用continue语句。
③用循环控制语句打印输出:1+3+5+...+99=?的结果。
④输出从1到100之间所有不能被3整除的数;并输出这些整数的和。
public class Exer11 {
public static void main(String[] args){
//3000米长的绳子,每天减一半。问多少天这个绳子会小于5米?
double l = 3000.0;
int num = 0;
for(int i = 0;l >= 5;i++){
l = l / 2;
num++;
}
System.out.println("需要"+ num +"天后小于5米。");
//打印1-100之间非13的倍数
for(int i = 1;i <= 100;i++){
if(i % 13 != 0){
System.out.print(i + " ");
}
}
System.out.println();
//用循环控制语句打印输出:1+3+5+...+99=?的结果
int sum = 0;
for(int i = 1;i <= 99;i += 2){
sum += i;
}
System.out.println("sum=" + sum);
//输出从1到100之间所有不能被3整除的数;并输出这些整数的和
int sum1 = 0;
for(int i = 1;i <= 100;i++){
if(i % 3 != 0){
System.out.print(i + " ");
sum1 += i;
}
}
System.out.println();
System.out.println("sum1="+ sum1);
}
}
12、猜数字游戏
随机生成一个100以内的数,猜数字游戏:
从键盘输入数,如果大了提示,大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次?
提示:随机数
import java.util.Random;
Random rand = new Random();
int num= rand.nextInt(100);
import java.util.Scanner;
public class Exer12 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = (int)(Math.random() * 90 + 10);//产生[0,100)的整数
System.out.println(i);//查看这个随机数
int count = 0;
bt:for(;;){//循环体至少执行一次
System.out.println("请输入一个100以内的随机数:");//键盘输入猜的数字
int num = scan.nextInt();//为变量初始并赋值
count++;//输入一次就计数一次
if(num > i){
System.out.println("大了");
}else if(num < i){
System.out.println("小了");
}else{
System.out.println("猜对了");
break bt;//跳出整个循环结构
}
}
System.out.println("一共猜了"+ count + "次,才猜对。");
}
}
13、打印1-100之间数,其中3、5、7的倍数不打印(continue)。
public class Exer13 {
public static void main(String[] args){
for(int i = 1;i <= 100;i++){
if(i%3 == 0 || i%5 == 0 || i%7 == 0){
//跳过本次循环,提前进入下一次循环,即i++语句
continue;
}else{
System.out.print(i+" ");
}
}
System.out.println("over");
}
}
14、一个数如果恰好等于它的因子之和,这个数就称为"完数"。(因子:除去这个数本身的约数)
例如6=1+2+3.编程 找出1000以内的所有完数。
public class Exer14 {
public static void main(String[] args){
System.out.println("1000以内的完数有:");
for(int i = 1;i <= 1000;i++){
int sum =0;//用来记录因子和
for(int j = 1;j < i;j++){
if(i % j == 0){
sum += j;
}
}
if(i == sum){//判断因子和是否与这个数相等
System.out.println(i);
}
}
}
}
15、输入两个正整数m和n,求其最大公约数和最小公倍数。
import java.util.Scanner;
public class Exer15 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数:");
int m = scan.nextInt();
System.out.println("请输入第二个数:");
int n = scan.nextInt();
int max = (m > n)?m : n;//取两者中的最大值
int min = (m < n)?m : n;//取两者中的最小值
//求最大公约数
for(int i = min;i >= 1;i--){
if(m % i == 0 && n % i ==0){
System.out.println("最大公约数:"+ i);
break;
}
}
//求最小公倍数
for(int i = max;i <= m * n;i++){
if(i % m == 0 && i % n ==0){
System.out.println("最小公倍数:"+ i);
break;
}
}
}
}