2018-03-09 特殊的数字 回文数

特殊数字

问题描述
  153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
输出格式
  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。


思路

用100~999数字在for中进行循环,特殊数字是由每一位上的数字的三次方之和,所以求出个位a,十位b,百位c上的数,个位数等于153%10,十位等于153/10%10,个位等于153/100%10,可以观察出规律比如求百位1533/100%10.

public class Teshushuzi {
    public static void main(String[] args) {
        int a,b,c;
            for(int j=100;j<999;j++)
            {
                a=j%10;
                b=(j/10)%10;
                c=(j/100);
                if(j==(a*a*a+b*b*b+c*c*c))
                {
                    
                    System.out.println(j);
                }
                
            
            }
    }

}

回文数

问题描述
  1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
  按从小到大的顺序输出满足条件的四位十进制数。

思路

一,从右边开始先求出个位上的数,然后用个位上的数10得到十位,然后加上下一位求出的2然后得到1210=120,然后120+求出的下一位2=122,然后122*10=1220,然后1220+1=1221
二,依次用特殊数字的方法比较前两位和后两位是否相等。


public class Huiwenshu {
    public static void main(String[] args)
    {
        int a,b,c,d;
        for(int i=1000;i<=9999;i++)
        {
            a=i%10;
            b=i/10%10;
            c=i/10/10%10;
            d=i/10/10/10%10;
//           a = i/1000;//最高位 ,即第一位   
//              b = i%1000/100;//第二位   
//              c = i%100/10;//第三位   
//              d = i%10;//个位,即第四位 
            if((a==d)&&(b==c))
            {
                System.out.println(i);
            }
        }
    }

}
public class Huiwenshu {
    public static void main(String[] args)
    {
        int a,b;
        for(int j=1000;j<=9999;j++)
        {
            a=j;
            b=0;
            while(a!=0)
            {
                b=a%10+b*10;
                a=a/10;
            }
            if(b==j)
            {
                System.out.println(j);
            }
        }
    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容