数的各位相加

思路

当数的位数不为1时,各个位数相加 

代码及解析

import java.util.Scanner;
public class HomeWork006 {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int m = scan.nextInt();

        int sum = 0;
        if(scan.hasNextLine()){
            while(m/10 != 0) {  //位数非1位,进入循环
                while (m != 0) {    //各位相加
                    sum = sum + m % 10;
                    m /= 10;
                }
                m = sum;
                sum = 0;
            }
            System.out.println(m);
        }

        scan.close();
    }

}

进阶版

 解析

这里考虑二位以上的数字

10的任何次方对9取余都为1,如果数字上所有位数的和位0-8时,我们可以直接对9取余,得到的结果就是原数字所有位数相加的和

如果取模9后得到的结果为0,由于只有该数为0时(个位数可以用if语句排除),那么数字上的所有位数相加的和为9

为什么九余数法能够一次实现重复相加

例如726-15-6,取模9再一次把15各个位数上的数相加

代码及解析

import java.util.Scanner;
public class HomeWork006 {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int m = scan.nextInt();

        int sum = 0;
        if(scan.hasNextLine()){
            if(m/10 == 0) {   //个位数直接输出,这里为了防止输入的数为0
                System.out.println(m);
            }else{
                if(m%9 == 0){  //各个位数相加为9
                    System.out.println("9");
                }else{   //各个位数相加为0-8
                    sum = m%9; 
                    System.out.println(sum);
                }
            }
        }

        scan.close();
    }

}

Java中的是否赋初值问题

成员变量(实例化变量和类变量):根据其类型都有默认初始化值

局部变量:没有默认初始化值,我们在调用局部变量之前需要赋值

(特别的,在形参调用时,直接赋值即可)

数组:数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配内存空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化

成员变量

java中,成员变量是指在类体的变量部分中定义的变量,也称属性。

成员变量声明在类中,方法体之外,在创建对象时实例化;

成员变量可被类中的方法、构造方法以及特定的语句块访问。

如果声明成员变量时没对其初始化,则系统会使用默认初始化成员变量

定义类的成员变量示例:

 

 java什么是成员变量-Java基础-PHP中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值