常见算法Java实现

1.求10的阶乘(阶乘 5!=12345)

package cx.djc;
public class JieChen {
    public static void main(String[] args) {
        int a = 1;
        for (int i = 1; i <= 10; i++) {
             a *= i;
            }
             System.out.println(a);
          }
     }

2.打印出如下图案:
在这里插入图片描述

package cx.djc;
public class StarDemo {
    public static void main(String[] args) {
        int i, j;
        for (i = 0; i < 4; i++) {
             for (j = 0; j < 2 * i + 1; j++) {
                  System.out.print("*");
                  }
                  //换行
                  System.out.println();
                 }
             }
         }

3.循环输出1到100之间所有能被3或能被4整除的数。

package cx.djc;
public class HundreDemo {
     public static void main(String[] args) {
         System.out.println("到100之间所有能被3或能被4整除的数有:");
         for (int i = 1; i < 101; i++) {
            if (i % 3 == 0 | i % 4 == 0) {
            //制表位格式化输出
             System.out.print(i + "\t");
             }
          }
      }
  }

4.循环输出200到300之间所有能被5整除,或能被2整除并且能被3整除的数

package cx.djc;
public class TthundredDemo {
     public static void main(String[] args) {
         System.out.println("200到300之间所有能被5整除,或能被2整除并且能被3整除的数有:");
         for (int i = 200; i < 300; i++) {
                if (i % 5 == 0 | (i % 2 == 0 && i % 3 == 0)) {
                    System.out.print(i + "\t");
                    }
                }
            }
        }

5.计算1+1/4+1/9+….+1/(20*20)

package cx.djc;
public class FenshuDemo {
    public static void main(String[] args) {
         int j;
         int i = 0;
         int sum = 0;
         for (i = 1; i < 21; i++) {
              j = i * i;
              sum += 1 / j;
         }
         System.out.println(sum);
       }
   }
         

6.循环输入5个学生的成绩,计算这5个学生的总分,及平均分。

package cx.djc;
import java.util.Scanner;
public class GradeDemo {
    public static void main(String[] args) {
         int stu[] = new int[5];
         int sum = 0;
         Scanner sc = new Scanner(System.in);
         for (int i = 0; i < 5; i++) {
              System.out.println("请输入第" + (i + 1) + "个学生的成绩:");
              stu[i] = sc.nextInt();
              sum += stu[i];
         }
          System.out.println("这5个学生的总成绩:" + sum);
          System.out.println("5个学生的平均分:" + sum / 5);
      }
 }

7.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
分析:这题的关键是如何把三位数i的百位,十位,个位依次表示出来。
百位:i/100 十位:(i/10)%10 个位:i%10

package cx.djc;
public class ShuixianDemo {
     public static void main(String[] args) {
         System.out.println("三位数中水仙花数有:");
         //i为这个三位数,g为个位数,s为十位数,b为百位数。
         int i, g, s, b;
          for (i = 100; i < 1000; i++) {
           //百位数b
           b = i / 100;
           //十位数s
           s=(i/10)%10
           //个位数g
           g = i % 10;
           //if判断条件
           if ((b * b * b + s * s * s + g * g * g) == i) {
               System.out.print(i + "\t");
               }
            }
         }
     }

8.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

package cx.djc;
public class OtherNum {
     public static void main(String[] args) {
         int i, j, k, num = 0;
          for (i = 1; i < 5; i++) {
                for (j = 1; j < 5; j++) {
                      for (k = 1; k < 5; k++) {
                           if (i != j && j != k && i != k) {
                               num++;
                               System.out.println(i * 100 + j * 10 + k);
                               }
                            }
                        }
                  }
                  System.out.println("共有" + num + "个");
             }
        }

9.输出9*9口诀。

package cx.djc;
public class jiuDemo {
     public static void main(String[] args) {
          System.out.println("九九乘法口诀表如下:");
          int a, b;
          for (a = 1; a < 10; a++) {
               for (b = 1; b < a + 1; b++) {
                    System.out.print(b + "*" + a + "=" + b * a + "\t");
                   }
                   System.out.println();
              }
         }
     }

10.输入一个数判断一个数是否为质数(只能被1和本身整除的数叫质数)

package cx.sherry;
import java.util.Scanner;
public class ZhiDemo {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
         System.out.println("请输入一个数:");
         int num = scanner.nextInt();
         boolean b = isSuNumber(num);
         if (b) {
             System.out.println(num + "是素数");
         } else {
               System.out.println(num + "不是素数");
         }
   }
 /*
 *判断是否为素数的函数
 *@param num
 *@return
 */
 public static boolean isSuNumber(int num) {
     for (int i = 2; i <= Math.sqrt(num) + 1; i++) {
          if (num % i == 0) {
              return false;
              }
          }
          return true;
        }
  }
   

11.打印如下图形
在这里插入图片描述

package cx.djc;
public class SuperStar {
    public static void main(String[] args) {
        int i, j;
        //上半层
        for (i = 0; i < 6; i++) {
             for (j = 0; j < 2 * i + 1; j++) {
                  //打印*不换行
                  System.out.print("*");
                  }
                  //打完一层换行
                   System.out.println();
           }
          //下半层
          for (i = 4; i > 0; i--) {
               for (j = 1; j < 2 * i + 1; j++) {
                    System.out.print("*");
                    }
                    System.out.println();
            }
         }
    }

12.输入一个四位数i,要求计算出它的千位,百位,十位,个位,并且打印出来。
千位:i/1000=1 百位:(i/100)%10 十位:(i/10)%10 个位:i%10

package cx.djc;
import java.util.Scanner;
public class ThousandDemo {
     public static void main(String[] args) {
         int q, b, s, g, i;
         Scanner sc = new Scanner(System.in);
         System.out.println("请输入一个四位数:");
         num = sc.nextInt();
         //千位
         q = i/ 1000;
         //百位
         b = (i / 100) % 10;
         //十位
         s = (i/ 10) % 10;
         //个位
         g = i % 10;
         System.out.println("千位:" + q + ",百位:" + b + ",十位:" + s + ",个位:" + g);     
         }
    }

13.我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

package cx.djc;
public class MountainDemo {
    public static void main(String[] args) {
        // 定义一个统计变量,默认值是0
        int count = 0;
        int end = 884800;
        int start = 1;
        while (start < end) {
         count++;
         start *= 2;
         System.out.println("第" + count + "次厚度是" + start);
        }
         System.out.println("要叠" + count + "次");
        }
  }

14.可以从控制台连续输入数字,当输入的数字为0时不可以再输入。

package cx.djc;
import java.util.Scanner;
public class NumInput {
    public static void main(String[] args) {
         int num;
         Scanner sc = new Scanner(System.in);
         ls:
         for (int i = 1; i > 0; i++) {
              System.out.println("请输入一个数字:");
              num = sc.nextInt();
              if (num == 0) {
                 System.out.println("break");
                 break ls;
                 } else {
                  System.out.println("您输入的数为:" + num);
              }
         }
     }
 }

15.本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?

package cx.djc;
public class MoneyDemo {
   public static void main(String[] args) {
       int i, money = 10000;
       float sum = 0;
       for (i = 1; i < 6; i++) {
            money += money * 0.003;
            sum += money;
           }
       System.out.println("经过计算5年后获得的本金是:" + sum + "元");
       }
  }

16.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

package cx.djc;
public class BallDemo {
     public static void main(String[] args) {
         int i, sumh = 0;
         int h = 100;
         for (i = 1; i < 11; i++) {
         h /= 2;
         sumh += h;
         if (i == 10) {
         System.out.println("第10次反弹" + h + "米," + "在第10次落地时共经过" + sumh + "米");
         }
      }
   }
 }

17.求1+2!+3!+…+10!的和

package cx.djc;
public class JcSum {
     public static void main(String[] args) {
         int sum = 0, a = 1;
         for (int i = 1; i <= 10; i++) {
         a *= i;
         sum += a;
        }
        System.out.println("1+2!+3!+...+10!=" + sum);
     }
 }

18.一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
万:i/10000 千:(i/1000)%10 百:(i/100)%10 十位:(i/10)%10 个位:i%10

package cx.djc;
import java.util.Scanner;
public class HuiWen { 
    public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         int w, q, b, s, g, num = 0;
         for (int i = 1; i < 11; i++) {
         System.out.println("请输入一个5位数:");
         num = sc.nextInt();
         //万位
         w = num / 10000;
         //千位
         q = (num / 1000) % 10;
         //百位
         b = (num / 100) % 10;
         //十位
         s = (num / 10) % 10;
         //个位
         g = num % 10;
         if (w == g && s == q) {
           System.out.println("您输入的数" + num + "是回文数,还有" + +(10 - i) + "次机会!");
          } else if (num <= 10000) {
             System.out.println("您输入的不是5位数!您还有" + (10 - i) + "次机会!");
          } else {
              System.out.println("您输入的不是5位数!您还有" + (10 - i) + "次机会!");
           }
       }
    }
 }

19.一只公鸡5块钱,一只母鸡3块钱,3只小鸡一块钱,一个农夫用100块钱买100只鸡,有多少种买法

package cx.djc;
public class ChickenDemo {
    public static void main(String[] args) {
    //公鸡,母鸡,小鸡,买法
    int gj, mj, xj, kind = 0;
    for (gj = 1; gj < 20; gj++) {
        for (mj = 1; mj < 34; mj++) {
            for (xj = 1; xj < 300; xj++) {
                   if (gj + mj + xj == 100 && 15 * gj + 9 * mj + xj == 300) {    
                       System.out.println("公鸡:" + gj + ",母鸡:" + mj + ",xj:" + xj);
                         kind++;
                         }
                   }
            }
      }
      System.out.println("共" + kind + "种买法");
    }
 }

20.求100以内不包括100,所有偶数和与奇数的和

package cx.djc;
public class SumDemo {
     public static void main(String[] args) {
         int i, sum = 0, sumj = 0, sumo = 0, sumoj = 0;
         for (i = 1; i < 100; i++) {
               if (i % 2 == 0) {
                    sumo += i;
               } else if (i % 2 != 0) {
                sumj += i;
               }
                sum += i;
          }
          if (sum == (sumo + sumj)) {
          System.out.println("100以内不包括100,所有偶数和为:" + sumo + ",奇数的和" + sumj + "所有数和为:" + sum);
          }
      }
 }

21.打印杨辉三角

package cx.sherry;
public class YhDemo {
     public static void main(String[] args) {
          int[][] a = new int[6][6];
          for (int i = 0; i < 6; i++) {
              for (int j = 0; j < i + 1; j++) {
                    if (j == 0 | i == j) {
                    a[i][j] = 1;
                    } else {
                    a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
                    }
                    System.out.print(a[i][j] + "\t");
                }
                    System.out.println();
            }
      }
 }


                   
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值