为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦看看反序输出的错在哪了呢,看了好久都没发现……


获得一个四位数的九倍等于其反序,结果却是6666??

public class fanxu {
 public static void main(String[]args) {
for(int k=1000;k<10000;k++) {
  int sum=0;
  String n=Integer.toString(k);
  for(int i=n.length()-1;i>=0;i--) {
           char c=n.charAt(i);
           int a=(int)c;
           for(int j=i;j>=1;j--) {
            a=a*10;
           }
           sum+=a;
  }
  if(k*9==sum)
   System.out.println(k);

}

  }
 }


正在回答

1 回答

int a=(int)c;这里错了char强制转换成int回返回其ascii码,0的ascii码是48,所以此处改成int a=(int)c+48即可

0 回复 有任何疑惑可以回复我~
#1

zhaichong

打得太快了,是int a=(int)c-48
2018-03-29 回复 有任何疑惑可以回复我~
#2

搁浅的鱼x 提问者 回复 zhaichong

谢谢!?
2018-03-29 回复 有任何疑惑可以回复我~
#3

搁浅的鱼x 提问者 回复 zhaichong

成啦?感谢!
2018-03-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

麻烦看看反序输出的错在哪了呢,看了好久都没发现……

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信