循环结构
for循环打印
编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行
上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印
输出“baz”
public static void main(String[] args) {
for (int i = 0; i < 151; i++){
System.out.print(i + "\t");
if (i % 3 == 0){
System.out.print("foo" + "\t");
}
if (i % 5 == 0){
System.out.print("biz" + "\t");
}
if (i % 7 == 0){
System.out.print("baz" + "\t");
}
System.out.println();
}
}
最大公约数和最小公倍数[break]
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
比如:12和20的最大公约数是4,最小公倍数是60。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int m = scanner.nextInt();
System.out.println("请输入一个正整数:");
int n = scanner.nextInt();
int smaller = Math.min(m, n);
int yue = 1;
for (int i = 2; i < smaller / 2 + 1; i++){
if (m %i == 0 && n %i == 0){
yue = i;
break;
}
}
// 最小公倍数:由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。
// 例如,求[18,20],即得[18,20]=18×20÷(18,20)=18×20÷2=180。
System.out.println(m + "," + n + "" + "最大公约数:" + yue + ", 最小公倍数:" + (m * n) / yue);
}
水仙花数
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数
字立方和等于其本身。
例如: 153 = 111 + 333 + 555
public static void main(String[] args) {
for (int i=100; i < 1000; i++){
int l = i % 10;
int m = (i / 10) % 10;
int h = i / 100;
if ((l*l*l + m*m*m + h*h*h) == i){
System.out.println(l + "*" + l + "*" + l + "+" + m + "*" + m + "*" + m + "+" + h + "*" + h + "*" + h + "="+ i);
}
/*
* 153, 370, 371,407
* */
}
}
打破不确认的循环次数
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。
public static void main(String[] args) {
int p = 0;
int n = 0;
while (true){
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个整数(0时跳出循环):");
int a = scanner.nextInt();
if (a == 0){
break;
}else if(a < 0){
n++;
}else{
p++;
}
}
System.out.println("正数:" + p + ", 负数:" + n);
}
最简单“ 无限” ” 循环: 格式:while(true) , for(; ; ), 无限循环存在的原因是并不知道循环多少次, 需要 根据循环体内部某些 条件,来 控制 循环的结束
九九乘法表
public static void main(String[] args) {
for (int i=1; i < 10; i++){
for (int j=1; j <= i; j++){
System.out.print(i + " * " + j + " = " + i * j + "\t");
}
System.out.println();
}
}
100 以内的 所有质数
1不是质数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。所以1不是质数。质数的个数是无穷的。
public static void main(String[] args) {
for (int i=2; i < 100; i++){
int count = 0;
for (int j=2; j < i/2 + 1; j++){
if (i %j == 0){
count ++;
break;
}
}
// 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
if (count == 0){
System.out.print(i + "\t");
}
count = 0;
}
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i=2; i < 10000; i++){
boolean count = false;
// 优化Math.sqrt(i)
for (int j=2; j < Math.sqrt(i); j++){
if (i %j == 0){
count = true;
break;
}
}
if (count == false){
// System.out.print(i + "\t");
}
count = true;
}
System.out.println();
long end = System.currentTimeMillis();
System.out.println("花费的时间(ms):" + (end - start));
}
不值一题
1.打印1~100之间所有奇数的和
public static void main(String[] args) {
int sum = 0;
for (int i=1; i < 101; i=i+2){
sum += i;
}
System.out.println("sum = " + sum);
}
2.打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数
器的思想)
public static void main(String[] args) {
int sum = 0;
int num = 0;
for (int i=7; i < 101; i=i+1){
if (i % 7 == 0){
num ++;
sum = sum + i;
}
}
// num = 14,sum = 735
System.out.println("num = " + num + "," + "sum = " + sum);
}
还没有评论,来说两句吧...