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);


    }
}

 

posted @ 2023-06-02 21:04  胖豆芽  阅读(12)  评论(0编辑  收藏  举报