48课 目标154课 while 求回文数 121反向输出数值121 ;用减法求商和余数
package com.fqs.test; import java.util.Scanner; import static jdk.nashorn.internal.objects.ArrayBufferView.length; public class hello { public static void main(String[] args) { //键盘输入一个数 121 如果倒叙后能相等 返回true //121除以10等于12.1 对10取余是2 //121除以10除以10 是1,对10取余是1 //121对10取余数是1 Scanner sc=new Scanner(System.in); System.out.print("请输入一个整数"); int num=sc.nextInt(); int ge=0; int sum=0; int num_1=num; //循环获得每个位数的数字 while(num>0){ ge=num%10; System.out.print("ge:"+ge+"\n"); num=num/10; //求反过来顺序的值sum sum=sum*10+ge; System.out.print("sum:"+sum+"\n"); } //比较 if(sum==num_1){ System.out.print("相等,true"); } else{ System.out.print("不相等,false"); } } }
秘诀:
让num除10 小于0 停止循环;
求反向输出值时,需要sum=sum*10+wei,注意是和sum乘以10 不是wei乘以10
package com.fqs.test; import java.util.Scanner; import static jdk.nashorn.internal.objects.ArrayBufferView.length; public class hello { public static void main(String[] args) { //如果是回文数 打印true 否则打印false Scanner sc=new Scanner(System.in); System.out.print("请输入一个数字比如12345"); int num = sc.nextInt(); int bi_num=num;//将值保存到bi_num中,防止之后被改变 int result=0; //拿num除以10 如果大于0继续除,小于0不再除 while (num>0){ int x=num%10;//比如12345对10求余得到5 result=result*10+x;//结果0*10+5=5 num/=10;//输入的值除以10 等于1234.5 大于0所以继续 } System.out.print("result:"+result+"\n"); System.out.print("bi_num:"+bi_num+"\n"); if(bi_num == result){ System.out.print("true"); } else{ System.out.print("false"); } } }
package com.fqs.test; import java.util.Scanner; import static jdk.nashorn.internal.objects.ArrayBufferView.length; public class hello { public static void main(String[] args) { //键盘输入一个数 121 如果倒叙后能相等 返回true //百位 121/10/10%10=1.21%10=1.21 //十位 121/10%10=12.1%10=2.1 //个位 121%10=1 Scanner sc=new Scanner(System.in); System.out.print("请输入一个数"); int num=sc.nextInt(); int num_1=num; int count=0; int wei=0; int sum=0; while(num>0){//当是小数,退出循环 count++; wei=num%10; //求余得到个十百千位上的值 System.out.print("wei:"+wei+"\n"); num=num/10;//每次循环都除以10 System.out.print("count:"+count+"\n"); sum=sum*10+wei;//求反过来顺序的值 比如123 第一次 sum 0=0+3=3 第二次循环 sum=3*10+2=32 第三次循环 sum=32*10+1=321 System.out.print("sum:"+sum+"\n"); } if(sum==num_1){ System.out.print("sum:"+sum+",num_1:"+num_1+"相等,true"); } else{ System.out.print("sum:"+sum+",num_1:"+num_1+"不相等,false"); } } }
用减法求商和余数
package com.fqs.test; import java.util.Scanner; public class hello { public static void main(String[] args) { //给除数和被除数 求商和余数 //不能使用乘除取余 //反向说明可以使用加减 int b_num=11; int num=2; int count=0; while(b_num-num>=0){ b_num=b_num-num; count++; } System.out.print("商:"+count+";余数:"+b_num); } }