编程中关于被除数,除数,商和余数的问题

例子如下:

class Test{

  System.out.println("1/10= "+1/10);

  System.out.println("1%10= "+1%10);

  System.out.println("2/10= "+2/10);

  System.out.println("2%10= "+2%10);

}

结果如下

1/10=  0

1%10=  1

2/10=  0

2%10=  2

自我总结分析:在编程中如果“被除数”小于“除数”,“商”(即 /)全部为0,“余数”(即%)为“被除数”。

生活中实际计算 1/10=0.1  2/10=0.2

由此延伸出的一个编程题

public class Test {

public static void main(String[] args){


    int i =0;
    while(true){
    i =(i+1)%10;//除数为10,余数永远不会超过10,故输出的数永远是10以内。
    System.out.println(i);
    }

  }

}

这是一个无限输出十以内数字的一个编程题。

因为除数为10,故无论i增长的多大的数值,其余数都不可能超过10,故结果始终控制在0-9之间。

举例如下:i =10, i%10=0;

i=23,i%10=3;

i=36,i%10=6;

i=100023,i%10= 3;

无论被除数有多大,其余数都是商里面最右边个位数上的那个数字。

比如1/10,实际计算结果为0.1,1%10=1

10/10  实际计算结果为1.0,10%10=0

32/10,实际计算结果为3.2 在计算机中的算法 32/10=3 ;32%10=2;

故通过此算法可以引申出如何判断一个数的个位数和十位数是几,以及如何将输入的一个数交换后输出。

把个位,乘以10,即成了十位数。 再加上原来的十位数,即可。

 其程序如下

import java.util.Scanner;


public class Test {
  public static void main(String[] args){

  System.out.println("Input a number:");
  Scanner in = new Scanner(System.in);
  int num = in.nextInt();
  System.out.println("输入的数为:"+num);
  int a = num/10;
  System.out.println("十位数:"+a);
  int b= num%10;
  System.out.println("个位数 :"+b);
  /*int temp=0;
  temp=a;
  a=b;
  b=temp;*/
  num=b*10+a;
  System.out.print(num);



  }

}

输入结果为:

Input a number:
23
输入的数为:23
十位数:2
个位数 :3
32

原文地址:https://www.cnblogs.com/java-dog/p/5180220.html