练习1
打印如下图形:
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
练习2
打印如下图形:
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4-i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
练习3
打印如下图形:
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
练习4
打印如下图形:
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = i; j >= 1; j--) {
System.out.print(j);
}
System.out.println();
}
}
练习5
打印如下图形
public static void main(String[] args) {
for (int i = 1; i <= 6; i++) {
for (int j = 0; j < 6 - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print(j);
}
for (int j = i - 1; j > 0; j--) {
System.out.print(j);
}
System.out.println();
}
}
练习6
打印如下图形
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 0; j < 5 - i; j++) {
System.out.print(" ");
}
for (int j = 1; j < 2 * i - 1; j += 2) {
System.out.print(j);
}
for (int j = 2 * i - 1; j >= 1; j -= 2) {
System.out.print(j);
}
System.out.println();
}
}
练习7
打印如下图形
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for (int j = 0; j < 4 - i; j++) {
System.out.print(" ");
}
int k = 1;//被打印的那个数
for (int j = 1; j <= i; j++) {
System.out.print(k);
k *= 2;
}
k /= 2;//因为上一个循环里面多乘了一个2
for (int j = 1; j < i; j++) {//或者while(k>1)
k /= 2;
System.out.print(k);
}
System.out.println();
}
}
练习8
打印如下图形:
public static void main(String[] args) {
for (int i = 5; i > 0; i--) {
for (int j = 0; j < 5 - i; j++) {
System.out.print(" ");
}
for (int j = 0; j < 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
练习9
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println(sum);
}
练习10
计算1+3+5+...+99的和
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 100; i+=2) {
sum += i;
}
System.out.println(sum);
}
练习11
读入一个小于10的整数n,输出它的阶乘n
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入小于10的数");
int num = scanner.nextInt();//验证是否小于10,略
long factorial = 1;
for (int i = 1; i <= num; i++) {
factorial *= i;
}
System.out.println(factorial);
}
练习12
求100以内所有能被3整除但不能被5整除的数字的和
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 != 0) {
sum += i;
}
}
System.out.println(sum);
}
练习13
“百钱买百鸡”是我国古代的著名数学题。题目描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?
public static void main(String[] args) {
for (int cock = 0; cock <= 100; cock++) {//公鸡
for (int hen = 0; hen <= 100 - cock; hen++) {//母鸡
for (int chick = 0; chick <= 100 - cock - hen; chick += 3) {//小鸡,3只3只买
if (cock + hen + chick == 100 && 3 * cock + 2 * hen + chick / 3 == 100) {//正好100只鸡,100文钱
System.out.println("公鸡:" + cock);
System.out.println("母鸡:" + hen);
System.out.println("小鸡:" + chick);
System.out.println("=====================");
}
}
}
}
}
练习14
搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次全搬完,问
男、女和小孩各若干?
public static void main(String[] args) {
for (int men = 0; men <= 36; men++) {//男
for (int women = 0; women <= 36 - men; women++) {//女
for (int children = 0; children <= 36 - men - women; children += 2) {//小孩,2个2个一组
if (men + women + children == 36 && 4 * men + 3 * women + children / 2 == 36) {
System.out.println("男:" + men);
System.out.println("女:" + women);
System.out.println("小孩:" + children);
System.out.println("=====================");
}
}
}
}
}
练习15
编程找出四位整数abcd中满足(ab+cd)(ab+cd)=abcd的数
public static void main(String[] args) {
for (int abcd = 1000; abcd < 10000; abcd++) {
int ab = abcd / 100;
int cd = abcd % 100;
int sum = ab + cd;
if (sum * sum == abcd) {
System.out.println(abcd);
}
}
}
练习16
读入一个整数n,输出如下图形
思路:
I.读入的整数n,就是外层循环的循环次数。
II.对于每一行,要做的事情:
1).输出若干个空格;
2).输出若干个星;
3).换行。
提示:输出不换行,用System.out.print()。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数");
int num = scanner.nextInt();
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
练习17
输出99乘法表
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i + "*" + j + "=" + i * j + "\t");
}
System.out.println();
}
}
练习18
求水仙花数。提示:所谓水仙花数,是指一个三位数abc,如果满足a³+b³+c³=abc,则abc是水仙花数。
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int units = i % 10;//个位
int tens = i / 10 % 10;//十位
int hundreds = i / 100;//百位
if (units * units * units + tens * tens * tens + hundreds * hundreds * hundreds == i) {
System.out.println(i + "是水仙花数");
}
}
}
练习19
韩信带兵不足百人,3人一行排列多1人;7人一行排列少2人;5人一行正好;请写出代码,以计算韩信带了多少人?
public static void main(String[] args) {
for (int i = 1; i < 100; i++) {
//三人一排多一人,7人一排少2人(最后一排是5人),5人一排正好
if (i % 3 == 1 && i % 7 == 5 && i % 5 == 0) {
System.out.println(i);
}
}
}