问题描述
输入任意整数,求各位之和~!朋友注意是任意整数哦,有可能三位,也有可能四位。。固定位数我会做,可是来个任意,我就不知道怎么做了。光知道应该有个循环。。麻烦各位大哥解惑·!
解决方案
解决方案二:
你这个是不是写错了,是不是“个位”?
解决方案三:
publicstaticvoidmain(String[]args){System.out.print(func(1231231));System.out.print(func(12311));}publicstaticintfunc(ints){intsum=0;StringBufferstringBuffer=newStringBuffer(String.valueOf(s));for(inti=0;i<stringBuffer.length();i++){sum=sum+Integer.parseInt(stringBuffer.substring(i,i+1).toString());}returnsum;}
解决方案四:
publicclassTest{publicstaticvoidmain(String[]args){//读取输入的字符串BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringline=br.readLine();//将输入的字符串转化成char数组char[]ch=line.ToCharArray();intresult=0;for(inti=0;i<ch.length;i++){result+=Integer.parseInt(ch[i].toString());}System.out.println("您输入的整数位:"+line+",每位相加后的值为:"+result);}}
上面写的没有测试,不知道对不对,你自己检测一下!
解决方案五:
Stringtemp=你输入的数字;intsum=0;for(inti=0;i<temp.length;i++){sum+=Integer.parseInt(temp.subString(i,i+1));}System.out.println("总和:"+sum);
解决方案六:
我的思路:判定输入为合法整数转化为字符串(eg:1234+"")字符串转化为字符数组(toCharArray())循环遍历字符数组,每个元素再转化为数字,相加返回有点笨,请大家再找个更方便快捷的方案
解决方案七:
publicintintSum(inti){intsum=0;while(i*10/10!=0){sum+=i%10;i=i/10;}returnsum;}
解决方案八:
importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.Iterator;publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{//读取输入的字符串BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringline=br.readLine();intresult=0;for(inti=0;i<line.length();i++){Integerj=Integer.parseInt(line.substring(i,i+1));result+=j;}System.out.println("您输入的整数位:"+line+",每位相加后的值为:"+result);}}
解决方案九:
引用4楼qiheia的回复:
Stringtemp=你输入的数字;intsum=0;for(inti=0;i<temp.length;i++){sum+=Integer.parseInt(temp.subString(i,i+1));}System.out.println("总和:"+sum);
正解!
解决方案十:
引用4楼qiheia的回复:
Stringtemp=你输入的数字;intsum=0;for(inti=0;i<temp.length;i++){sum+=Integer.parseInt(temp.subString(i,i+1));}System.out.println("总和:"+sum);
对这个程序整个都不明白1.输入数字,为啥用字符串定义呢?2.sum+=Integer.parseInt(temp.subString(i,i+1));这句话是啥意思不明白。。求细讲。我现在还没学到String..麻烦大哥就这个题随便给我讲讲
解决方案十一:
Stringtemp=你输入的数字;我这里偷懒写了,写全的话就是这样的BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringtemp=br.readLine();至于sum+=Integer.parseInt(temp.subString(i,i+1));这句话的意思就是:temp.subString(i,i+1)用循环将一个个字符取出来至于Integer.parseInt()也就表示将字符转换成数字sum+=也就表示累加的意思。。
解决方案十二:
引用10楼qiheia的回复:
Stringtemp=你输入的数字;我这里偷懒写了,写全的话就是这样的BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringtemp=br.readLine();至于sum+=Integer.parseInt(temp.subString(i,i+1));这句话的意思就是:temp.subString(i,i+1)用循环将一个个字符取出来至于Integer.parseInt()也就表示将字符转换成数字sum+=也就表示累加的意思。。
恩,大体是明白了。。但还不是很清晰1.非得用字符串这种形式来做吗?2.我看书上写着String=后面必须接字符串而且还要带双引号的。。例如String="abc"..数字是整形的能用String声明吗?3.我可不可以用Scanner这个类替代BufferedReader.如果不能为什么呢?
解决方案十三:
1.非得用字符串这种形式来做吗?可以用其他的方式来解决,方法是多种多样的,就看你想不想得到。2.我看书上写着String=后面必须接字符串而且还要带双引号的。。例如String="abc"..数字是整形的能用String声明吗?不能,2个类型不一致,否则会出错。至于Integer.parseInt("接收字符串类型的数据")他的功能是将字符串转为int所以要用个int类型的数据接收如Stringtemp="123";inti=Integer.parseInt(temp);3.我可不可以用Scanner这个类替代BufferedReader.如果不能为什么呢?完全可以。。。
解决方案十四:
可以用Scanner。
解决方案十五:
引用11楼crttcl的回复:
引用10楼qiheia的回复:Stringtemp=你输入的数字;我这里偷懒写了,写全的话就是这样的BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringtemp=br.readLine();至于sum+=Integer.parseInt(temp.subString(i,i+1));这句话的意思就是:temp.subString(i,i+1)用循环将一个个字符取出来至于Integer.parseInt()也就表示将字符转换成数字sum+=也就表示累加的意…
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));这句话给我的感觉是实例化一个输入流对吧?newInputStreamReader(System.in))这段话是读入字符串是吧?但Stringtemp=br.readLine();中的br.readLine();读入的是数字吧?并不是String类型的数据啊~我不明白在这
解决方案:
publicintgetNum(intnum){intsum=0;while(num!=0){sum+=num%10;num/=10;}}
解决方案:
UP...
解决方案:
引用15楼xdbjzhhh的回复:
JavacodepublicintgetNum(intnum){intsum=0;while(num!=0){sum+=num%10;num/=10;}}
这位仁兄的解答看起来就很容易了谢谢了。