本帖最后由 我叫MT 于 2014-3-2 21:04 编辑
- /*
- 让任何数作*9运算,然后让结果每个位数作为个数相加,直到结果为个位数为止
- 如31*9 = 279-->2+7+9 = 18-->1+8-->9
- 键盘录入并保证输入的是数字
- */
- import java.io.*;
- class Demo
- {
- public static void main(String[] args)throws Exception
- {
- BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
- String line = null;
- while((line=bufr.readLine())!=null);
- {
- String regex = "\\d+";
- if(line.matches(regex))
- {
- int x = Integer.parseInt(line),z = 9,y;
- y = x*z;
- String str = String.valueOf(y);
- int b = 0;
- for(int i=0;i<str.length();i++)
- {
- String str2 = str.substring(i,i+1);
- int a = Integer.parseInt(str2);
- b = b+a;
- }
- String str3 = String.valueOf(b);
- int c = 0;
- for(int i2=0;i2<str3.length();i2++)
- {
- String str4 = str.substring(i2,i2+1);
- int d = Integer.parseInt(str4);
- c = c+d;
- }
- System.out.println("得到的结果是:"+c);
- }
- else
- System.out.println("请输入正确的数字");
- }
- }
- }
复制代码 第一个问题是这个代码启动后可以键盘录入却得不到结果怎么回事?没加入键盘录入时可以运算出结果的,第二个问题,这个代码有重复的地方,在23到35那里,如何优化?
|
|