编程中关于被除数,除数,商和余数的问题
例子如下:
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