A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 洪运成 中级黑马   /  2013-4-3 21:23  /  2103 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


      编写一个程序,让用户输入一个正整数值,然后计算该数各位数的和。
例如:如果输入的数是123,则计算结果是6

java基础--day08.zip

12.57 KB, 下载次数: 130

5 个回复

倒序浏览
这个确实简答
回复 使用道具 举报
这个题有个前提,是用户输入的是一个未知数。
回复 使用道具 举报
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Arrays;
  5. import java.util.regex.Pattern;


  6. public class test11 {

  7.         /**
  8.          * @param args
  9.          * @throws IOException
  10.          */
  11.         public static void main(String[] args) throws IOException {
  12.                 // TODO Auto-generated method stub
  13.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // BufferedReader继承自Readed类
  14.         System.out.print("please input:");
  15.         String str = br.readLine(); // 从文件中读一行读一行
  16.         
  17.         //同正则判断str是否是数字
  18.         String regex = "\\d+";
  19.         boolean flag = Pattern.matches(regex, str);
  20.         
  21.         int sum = 0;
  22.         if(flag) {
  23.                
  24.                 sum = count(str);
  25.                 System.out.println(sum);
  26.         } else
  27.         System.out.println("你输入的不是正整数!");
  28.         }
  29.         public static int count(String str) {
  30.                 int sum = 0;
  31.                 int length = str.length();
  32.                 int a[] = {0,1,10,100,1000,100000,100000};
  33.                 int num = Integer.parseInt(str);
  34.                 while(length != 0) {
  35.                         sum += num / a[length];
  36.                         num = num % a[length]; //n为余数
  37.                        
  38.                         length--;
  39.                 }
  40.                 return sum;
  41.         }

  42. }
复制代码
回复 使用道具 举报
不行,输个123456就经不起考查了
回复 使用道具 举报
洪运成 发表于 2013-4-3 22:26
不行,输个123456就经不起考查了

可能粗心你可以改这个:int a[] = {0,1,10,100,1000,10000,100000,1000000};
或者int a[] = {0,1,10,100,1000,10000,100000,1000000,1000000,。。。。。。。};
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马