原题链接:Tom数
import java.util.Scanner; public class Text { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //创新扫描器 Scanner scanner=new Scanner(System.in); while (scanner.hasNext()) { //接受用户输入的数据,注意,一定不要加LIne,不然你的循环就老是多出一个0 String a=scanner.next(); //创建一个数组,为以后用来装分解的string类型,所以长度就是数组的长度 int [] fen=new int[a.length()]; //每一个数相加的总和 int sum =0; //利用for循环,来控制数组的索引和变道charAt()的index for (int i = 0; i < fen.length; i++) { //charAt()方法是返回指定索引的字符,就可以把0 1 2 3 4.....看成一个字符,在利用charAt()把a的数据分割 //char值的0为整数48,1为整数49,2为整数50......所以每一个索引减去48就可以分解成123456789的形式 fen[i]=(int)a.charAt(i)-48; //分解了以后在相加 sum+=fen[i]; } System.out.println(sum); } } }
解题思路:利用CharAt()方法来求,char()可以根据下表的形式分解你的string的数字
注意事项:接受一定要next()来接受,不要用nextLine()来接受,不然你在循环接收的时候,就会打印二次
参考代码:
0.0分
6 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复