特殊数字
问题描述
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);
}
}
}
}