用 java 获取100----999之间夹心饼干数 如141 838等个位百位一样

2025-02-24 22:30:59
推荐回答(3个)
回答1:

import java.util.Scanner;
public class 回文数 {
 public static void main(String[] args) {
  //100~1000之间的回文数
  for(int i=100;i<1000;i++){  //循环遍历100到1000
   if(i/100%10==i%10){     //判断百位数字与个位数字是否相同
    System.out.println(i);   
   }
  }
  //判断一个数是否回文数
  Scanner input =new Scanner(System.in);
  System.out.print("请输入一个数字:");
  int num=input.nextInt();
  int num1=num;   //num1是用来求数字的位数的
  int count=1;    //数字的位数,默认为1位
  boolean flag=true;   //是否为回文数,默认为是
  while(num1/10!=0){   //当num1为个位数时就结束循环
   count++;         //位数加1
   num1=num1/10;    //自身除以10
  }
  for(int i=1;i<=count/2;i++){    //循环(位数/2)-1次
   if(!(num/(int)Math.pow(10, count-i)%10==num/(int)Math.pow(10,i-1)%10)){  //判断数字左右两边的数字是否相等
    flag=false;  //只要有一对数字不想等就不是回文数
    break;       //结束循环
   }
  }
  if(flag){
   System.out.println(num+"是回文数");
  }else{
   System.out.println(num+"不是回文数");
  }
 }
}

 

你说的夹心饼数其实就是回文数

  1. 数字无论是正读还是倒读都是一样,例如正读1234321,倒读还是1234321

  2. 以数字的中间为对称轴,左右两边的数字是相同的,比如1234321,最左边是1,最右边也是1,左边第二个是2,右边第二个也是2,以此类推

 

判断回文数:只要判断左右数字是否相等就行

 

补充知识:

  1. 获取数字每一位的数字:比如数字1234

        个位:1234%10=4                  //除以1再余10

       十位:1234/10%10=3             //除以10再余10

       百位:1234/100%10=2          //除以100再余10

       千位:1234/1000%10=1        //除以1000再余10

      结论:想得到多少位数字就先除多少再余10就行

 

 2.多次方:

     Math.pow(double 底数,double 幂数) 
    返回值:double类型    

   举例:Math.pow(2,4)    →结果:2的4次方=16.0

   注意:方法最终返回的是double型,可以通过强制转换变成整型

回答2:

public class test 
{
public static void main(String[] args) 
{
for(int i=100;i<=999;i++){
if(i/100==(i%100%10))
System.out.println(i);
}

}
}

这东西得多练

回答3:

int count = 0;
for (int i = 100; i < 1000; i++) {

if (i / 100 == i % 100 % 10) {
count++;
}
}
System.out.println(count);