关于java程序问题,哪位高手能帮我看看下面那道我写的程序哪里出问题了,为什么不能输出预期结果
题目要求:编写程序,求满足下述条件的三位数:这种三位数等于它各位数字的立方和。我写的程序如下:publicclassunite2_10{publicstaticvoidm...
题目要求:编写程序,求满足下述条件的三位数:这种三位数等于它各位数字的立方和。我写的程序如下:
public class unite2_10
{
public static void main(String args[])
{
int a,sum=0,m=0;
for(int i=100;i<=999;i++)
{
m=i;
while(i!=0)
{
a=i%10;
sum+=a*a*a;
i=i/10;
}
if(m==sum)
{
System.out.println(sum);
}
}
}
} 展开
public class unite2_10
{
public static void main(String args[])
{
int a,sum=0,m=0;
for(int i=100;i<=999;i++)
{
m=i;
while(i!=0)
{
a=i%10;
sum+=a*a*a;
i=i/10;
}
if(m==sum)
{
System.out.println(sum);
}
}
}
} 展开
5个回答
展开全部
是取模得出个十百位数字上的问题:
建立这样写,思路比较清晰。
public class Test{
public static void main(String[] args){
int gewei;
int shiwei;
int baiwei;
int lifang;
for(int i=100;i<1000;i++) {
gewei = i%10;
shiwei = (i%100-gewei)/10;
baiwei = (i-shiwei*10-gewei)/100;
lifang = gewei*gewei*gewei+shiwei*shiwei*shiwei+baiwei*baiwei*baiwei;
if(lifang == i) {
System.out.println("Value=" + i );
}
}
}
}
建立这样写,思路比较清晰。
public class Test{
public static void main(String[] args){
int gewei;
int shiwei;
int baiwei;
int lifang;
for(int i=100;i<1000;i++) {
gewei = i%10;
shiwei = (i%100-gewei)/10;
baiwei = (i-shiwei*10-gewei)/100;
lifang = gewei*gewei*gewei+shiwei*shiwei*shiwei+baiwei*baiwei*baiwei;
if(lifang == i) {
System.out.println("Value=" + i );
}
}
}
}
展开全部
sum的值你在for循环里面置零吧。不然你的sum值一直就加上去了的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sum的问题。一次循环结束后sum应赋为0.
public class unite2_10
{
public static void main(String args[])
{
int a,sum=0,m=0;
for(int i=100;i<=999;i++)
{
m=i;
while(i!=0)
{
a=i%10;
sum+=a*a*a;
i=i/10;
}
if(m==sum)
{
System.out.println(sum);
}
sum=0;
}
}
}
public class unite2_10
{
public static void main(String args[])
{
int a,sum=0,m=0;
for(int i=100;i<=999;i++)
{
m=i;
while(i!=0)
{
a=i%10;
sum+=a*a*a;
i=i/10;
}
if(m==sum)
{
System.out.println(sum);
}
sum=0;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-21
展开全部
水仙花数程序存在两个问题:
1.每个数的判断,sum需要再for里面重新置0;
2不要再循环中改变要判断的i值,这个影响for循环的自加.
修改如下:
public class unite2_10 {
public static void main(String args[]) {
int a, sum = 0, m = 0;
for (int i = 100; i <= 999; i++) {
sum = 0;
m = i;
while (m != 0) {
a = m % 10;
sum += a * a * a;
m = m / 10;
}
if (i == sum) {
System.out.println(sum);
}
}
}
}
1.每个数的判断,sum需要再for里面重新置0;
2不要再循环中改变要判断的i值,这个影响for循环的自加.
修改如下:
public class unite2_10 {
public static void main(String args[]) {
int a, sum = 0, m = 0;
for (int i = 100; i <= 999; i++) {
sum = 0;
m = i;
while (m != 0) {
a = m % 10;
sum += a * a * a;
m = m / 10;
}
if (i == sum) {
System.out.println(sum);
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不晓得
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询