ECNU 2443 sunny的烦恼

ECNU 2443 sunny的烦恼

链接

https://acm.ecnu.edu.cn/problem/2443

题目

单点时限: 2.0 sec

内存限制: 256 MB

这一天 心情很不好,因为 给了 定义一个函数 f(a) 并让他求值,a 为非负整数,如果 a<=9 那么fa=a , 如果 a>10,那么fa=f(的每一位上的数字之和) 。

例如 ,问题就是, 想了很久不出来,于是他请求你编程帮助他

输入格式
第一行有一个数 t,表示接下来有多少组数据,每组数据只有一个数

输出格式
对于每组数据,输出 fa的值

样例
input
3
3
13
18
output
3
4
9

思路

范围非常大,所以用字符串输入(但是测试数据贼水),如果a在十以内,直接输出值,不然就计算各位数的和即可。

代码

  public static int f(String n) {

    if (n.length() == 1) {
      return Integer.valueOf(n);
    } else {
      int temp = 0;
      for (int i = 0; i < n.length(); i++) {
        temp += n.charAt(i) - '0';
      }
      String ans = Integer.toString(temp);
      return f(ans);
    }
  }

  public static void fun() {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    for (int i = 0; i < n; i++) {
      String str = sc.next();
      int ans = f(str);
      System.out.println(ans);
    }
  }
posted @ 2021-02-01 20:09  cheng102e  阅读(44)  评论(0编辑  收藏  举报