练习1:
使用for循环方式计算2+4+6+…+100的值
练习2:
编写Java程序,在控制台上打印出九九乘法表(两种)
练习3:
所谓素数(又叫质数)是指只能被1和它本身整除的数字,1除外。输入一个正整数,判断是否为素数。
练习4:
打印出100以内的质数,一行显示5个,(质数是只能被1跟自身整除的数,1不是质数)
练习5:
循环录入5个人的年龄,并计算平均年龄,如果录入的数据出现负数或者大于130的数,立即停止输出报错(无需打印平均年龄)
练习6(选作):
使用for循环实现:根据用户输入的正整数n,求n!,即n!=n*(n-1)(n-2)…*1。
练习7(选作):
使用循环打印以下圣诞树:
*
***
要求输入树的高度,打印圣诞树。
解题思路:
1、双层循环
2、高度:h
3、当前行:n
3、空格数:当前行h-n
4、星星数:2n-1
练习8(选作):
(百元钱买百只鸡问题)一只公鸡5元钱,一只母鸡3元钱,三只小鸡1元钱。要求100元买100只鸡,请给出所有可行的结果?
练习9(选作):
所谓回文数是指正着数和倒着数一样大,比如1001,5005,8228,9999。请打印出1000-9999之间所有的回文数。
public static void main(String[] args) {
// test1();
// test2();
// test3();
// test4();
// test5();
// test6();
test7(5);
// test8();
// test9();
}
public static void test1() {
// 使用for循环方式计算2+4+6+…+100的值
int j = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
j += i;
}
}
System.out.println(j);
}
public static void test2() {
System.out.println("第一种");
for (int i = 1; i < 10; i++) {
for (int j = 1; j < i + 1; j++) {
System.out.print(i + "*" + j + "=" + i * j + "\t");
}
System.out.println();
}
System.out.println("第二种");
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
System.out.print(i + "*" + j + "=" + i * j + "\t");
}
System.out.println();
}
}
public static void test3() {
/*
* 所谓素数(又叫质数)是指只能被1和它本身整除的数字, 1除外。输入一个正整数,判断是否为素数。
*/
System.out.println("输入一个整数(1除外):");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int a = 0;
for (int i = 2; i <= num - 1; i++) {
if (num % i == 0) {
System.out.println(num + "不是素数");
a++;
break;
}
}
if (a == 0) {
System.out.println(num + "是素数");
}
}
public static void test4() {
/*
* 打印出100以内的质数,一行显示5个, (质数是只能被1跟自身整除的数,1不是质数)
*/
int n = 1;// 声明变量n,判断是否换行
// 质数是从2开始的,所以先遍历2到100的整数
for (int i = 2; i <= 100; i++) {
// 声明变量j,遍历小于i的所有整数
int j = 2;
while (i % j != 0) {
// 如果i%j 余数不为0,则 自增,直到余数为0
j++;
}
// 如果余数为0,j为除了1之外最小的能被自己整除的整数,判断j是不是本身
if (i == j) {
// 如果j等于i,输出i
if (n % 5 != 0) {// 判断是否换行
System.out.print(i + ",");// 如果不是5的倍数,在同行输出
n++;
} else {
System.out.println(i);// 如果是5的倍数,换行输出
n++;
}
}
}
}
public static void test5() {
/*
* 循环录入5个人的年龄,并计算平均年龄, 如果录入的数据出现负数或者大于130的数, 立即停止输出报错(无需打印平均年龄)
*/
System.out.println("请输入5个人的年龄:");
Scanner sc = new Scanner(System.in);
int age= 0;
int sum= 0;
int aveage;
for (int i = 1; i <= 5; i++) {
age = sc.nextInt();
if (age < 0 || age > 130) {
System.out.println("输入错误!!!");
break;
}
sum += age;
}
aveage=sum/5;
if(aveage==0){
System.out.println();
}else{
System.out.println("五人的平均年龄为"+aveage);
}
}
public static void test6(){
/*使用for循环实现:根据用户输入的正整数n,求n!,
即n!=n*(n-1)*(n-2)*…*1。*/
System.out.println("请输入一个正整数n:");
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int m=1;
for(int i=1;i<=n;i++){
m*=i;
}
System.out.println("n!="+m);
}
public static void test7(int h){
/*要求输入树的高度,打印圣诞树。
解题思路:
1、双层循环
2、高度:h
3、当前行:n
3、空格数:当前行h-n
4、星星数:2n-1*/
for(int n=0;n<h;n++)
{
for(int i=0;i<h-n-1;i++){
System.out.print(" ");
}
for(int j=1;j<=2*n+1;j++){
System.out.print("*");
}
System.out.println();
}
}
public static void test8(){
System.out.println("公鸡 "+"母鸡 "+"小鸡");
for(int i=0;i<100;i++){//公鸡个数
for(int j=0;j<100;j++)//母鸡个数
{
if((100-i-j)%3==0){//小鸡是不是3的倍数
if(i*5+j*3+(100-i-j)/3==100)
System.out.println(i+" "+j+" "+(100-j-i));
}
}
}
}
public static void test9(){
int ge=0;
int shi=0;
int bai=0;
int qian=0;
for(int i=1000;i<10000;i++){
//8562
qian=i/1000; bai=(i/100)%10;
shi=(i/10)%10; ge=i%10;
if(qian==ge&&bai==shi){
System.out.println(i);
}
}
}
练习四重做
方法
public static void printZhiShu(int number){
int count=0;//记录总质数个数
for(int i=2;i<=number;i++){
boolean flag=true;
for(int j=2;j<i;j++){
if(i%j==0){
//不是质数
flag=false;
break;
}
}
if(flag){
System.out.print(i+"\t");
if(++count%5==0){
System.out.println();
}
}
}
}