第九届蓝桥杯省赛JAVA语言 C组题解_题7 缩位求和

题目:在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。
比如:248 * 15 = 3720
把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得
2 + 4 + 8 = 14 ==> 1 + 4 = 5;
1 + 5 = 6
5 * 6
而结果逐位求和为 3
5 * 6 的结果逐位求和与3符合,说明正确的可能性很大!!(不能排除错误)

请你写一个计算机程序,对给定的字符串逐位求和:
输入为一个由数字组成的串,表示n位数(n<1000);
输出为一位数,表示反复逐位求和的结果。

例如:

输入:

35379

程序应该输出:

9

再例如:

输入:

7583676109608471656473500295825

程序应该输出:

1

public class T8_缩位求和 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //获取键盘输入,装换成字符串
        String n=sc.nextLine();
        //调用已经实现的方法
        System.out.println(aa(n));
    }
    private static int aa(String n){
        String s=n;
        //记录所有的数字相加的和
        int sum=0;
            for (int i = 0; i < s.length(); i++) {
                int a=Integer.parseInt(s.substring(i,i+1));//将字符串单个的截取出来,并转换成数字
                sum+=a;//进行累加,sum=sum+a;
            }
            String ss=""+sum;//把累加到的值装换成字符串,方便下面进行判断
        //三元运算符,如果sum大于等于10则重新调用这个方法,并把ss传进去,如国sum小于10则返回sum
        return sum>=10?aa(ss):sum;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值