do while循环和 while循环的 9X9乘法表(涉及while 循环和do while循环的算法题)

在发布新的SE知识之前,先把几个简单的算法题顶上。
一、9x9乘法表(包含4种算法)

  1. do while() 正的 9X9
int i = 1;
int j = 1;
   do {
   	j = 1;
   	while (j <= i) { //控制列
   	System.out.print(i + "*" + j + "=" + i*j + "  ");
    	j++;
  }
   	System.out.println("");
   	i++;
  } while (i <= 9); //控制行
  1. 第二种 while 正的9X9
int i = 1;
int j = 1;
  while (i <= 9) {
	j = 1;
   while (j <= i) {
    	System.out.print(i + "*" + j + "=" + i*j+ "  ");
     	j++;
   }
       System.out.println("");
       i++;
 }
  1. 第一种 while 反的 9X9
int i = 9;
int j = 9;
  while (i > 0) {
   j = i;
   while (i >= j && j > 0 || i <= j && j > 0) {
     	System.out.print(i + "*" + j + "=" + i*j+ "  ");
     	j--;
   }
   	System.out.println("");
   	i--;
  } 
  1. 第二种 do while 反的 9X9
 int i = 9;
 int j = 9;
 do {
 	 j = i;
 	while (i >= j && j > 0 || i <= j && j > 0) {
   		System.out.print(i + "*" + j + "=" + i*j+ "  ");
   		j --;
  	}
  	System.out.println("");
  	i --;
 }while (i > 0);

二、因式分解

while (num != 1) {
    while (num % i == 0) {
     System.out.print(i);
     num = num / i;
     if (num != 1) {
      System.out.print("*"); 
     } else {
      System.out.print(""); 
     }
    }
    i++;
   }
 }

三、斐波那契数列

  int i = 0;
  int j = 1;
  int s = 1;
  int k = 1;
  System.out.print(s + " ");
  while (k <= 30) {
   s = i + j;
   System.out.print(s + " ");
   i = j;
   j = s;
   k++;
  }

四、水仙花数

/*
 判断一个三位数是否是水仙花数,如果是,输出YES,如果不是,输出NO
 说明: 水仙花就是一个数的每个数字的立方和等于它本身的数, 例如 153就是一个水仙
 花数 1*1*1+5*5*5+3*3*3=153
*/
Scanner sc = new Scanner(System.in);
  System.out.println("请输入一个三位数,判断是否是水仙花数。");
  int num = sc.nextInt();
  int i = num / 100;
  int j = (num - 100 * i) / 10;
  int k = num - 100 * i - 10 * j;
  int num1 = i * i * i + j * j * j + k * k * k;
  if (num == num1) {
   System.out.println("YES," + num + "是水仙花");
  } else {
   System.out.println("NO," + num + "不是水仙花");
  }

五、逆序数值

/*
逆序数值
  用户输入123456 展示654321
  用户输入987654 展示456789
*/
Scanner sc = new Scanner(System.in);	
System.out.println("请输入一个数字");
  int num = sc.nextInt();
   while (num!=0) {
    System.out.print(num % 10);
    num /= 10;
   }
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值