打印100以内的所有素数
首先解释一下什么是素数:
素数:只能被1 和自身整除的数 称为素数 也叫质数 其他的成为 合数 1既不是质数也不是合数。
代码实现:
for(int i=2;i<=100;i++){
//需要对每一个i进行判断,如果满足素数的需求,就打印
//用i 除以 2~ i-1 每一次操作都没有除尽,说明i 是素数
//i%(2~ i-1)!=0
boolean flag = false;
for(int j = 2;j < i;j++){//如果整个内层循环执行过程中都没有成立里面的条件,说明i是素数。
if(i%j==0){
//说明i 不是素数
flag = true;
break;
}
}
if(false == flag){//i 是素数
System.out.println("i = "+i);
}
}
也可以有第二种方法:
\
求素数(方法2)
打印数学中几种常见的多边形
其实就是对java中循环的灵活使用,进行嵌套循环
public class TestFor4{
public static void main(String[] args){
//width
//height
int width = 20;
int height = 10;
//矩形
for(int i=0;i<height;i++){//外层循环控制打印的行数
for(int j=0;j<width;j++){//内层循环控制打印 width 个 * + \n
System.out.print(" *");
}
System.out.print("\n");
}
System.out.println();
//平行四边形
for(int i=0;i<height;i++){//外层循环控制打印的行数
for(int j=0;j<height-i-1;j++){//打印若干个空格
System.out.print(" ");
}
for(int j=0;j<width;j++){//内层循环控制打印 width 个 * + \n
System.out.print(" *");
}
System.out.print("\n");
}
System.out.println();
//平行四边形
for(int i=0;i<height;i++){//外层循环控制打印的行数
for(int j=0;j<i;j++){//打印若干个空格
System.out.print(" ");
}
for(int j=0;j<width;j++){//内层循环控制打印 width 个 * + \n
System.out.print(" *");
}
System.out.print("\n");
}
System.out.println();
//等腰三角形
for(int i=0;i<height;i++){//外层循环控制打印的行数
for(int j=0;j<height-i-1;j++){//打印若干个空格
System.out.print(" ");
}
for(int j=0;j<2*i+1;j++){//内层循环控制打印* + \n
System.out.print(" *");
}
System.out.print("\n");
}
//菱形
for(int i=0;i<height;i++){//外层循环控制打印的行数
for(int j=0;j<height-i-1;j++){//打印若干个空格
System.out.print(" ");
}
for(int j=0;j<2*i+1;j++){//内层循环控制打印* + \n
System.out.print(" *");
}
System.out.print("\n");
}
//菱形下半部分倒置的等腰三角形
for(int i=0;i<height;i++){//外层循环控制打印的行数
for(int j=0;j<i;j++){//打印若干个空格
System.out.print(" ");
}
if(i > 0){
for(int j=0;j<height*2-1-2*i;j++){//内层循环控制打印* + \n
System.out.print(" *");
}
System.out.print("\n");
}
}
}
}
百钱买百鸡问题
问题:公鸡5块钱一只,母鸡 3钱 一只, 小鸡 一元三只 ,100钱买100只鸡。有多少种组合。
方法一(三层for循环)
for(int i = 0;i<=20;i++){
for(int j=0;j<=33;j++){
for(int k = 0;k <=300; k++){
if(i + j + k == 100 && (i*5 + j * 3 + k/3 == 100) && k % 3 == 0 ){//小鸡必须是3的倍数
System.out.println("公鸡:"+ i + "\t母鸡:"+j+"\t小鸡:"+k);
}
}
}
}
方法二
//使用双层循环实现
for(int i = 0;i<=20;i++){
for(int j=0;j<=33;j++){
int k = 100 - i - j;
if((i*5 + j * 3 + k/3 == 100) && k % 3 == 0 ){//小鸡必须是3的倍数
System.out.println("公鸡:"+ i + "\t母鸡:"+j+"\t小鸡:"+k);
}
}
}
方法三\
百钱买百鸡方法3
九九乘法表的打印
大体思路:九九乘法表 for 情怀 外层循环控制行数 内层循环控制 本行打印几列
代码实现:
for(int i = 1;i<=9 ;i++){
for(int j = 1 ;j <=i ;j++){
System.out.print(j + "*" + i + "="+(j*i)+"; ");
}
System.out.println();
}
斐波那契数列
特点:第一个和第二个数值都为1,从第三个位置开始,数值为前两个数值只和。
例如:1,1,2,3,5,8,.....
要使用阶乘来实现
public static int febo(int n){
if(n == 1 || n == 2){
return 1;
}else{
return febo(n-1)+febo(n-2);
}
}
水仙花数
题目:水仙花数:在 100-999 之间有几个这样的数 : 该三位数的每一位的 三次幂 之和 等于该数自身 求这几个数是什么??
// 水仙花数:在 100-999 之间有几个这样的数 : 该三位数的每一位的 三次幂 之和 等于该数自身 求这几个数是什么??
public class TestFor2{
public static void main(String[] args){
for(int i=100;i<1000;i++){
int a = i%10;//个位
int b = i/10%10;//十位
int c = i/100;
if(a * a * a + b * b * b + c * c * c == i){
System.out.println(" i = "+ i);
}
}
}
}