(JAVA)两个数,第一个数,个位十位相加,第一个数+1,再个位十位相加,直到第一个数=第二个数,求和

版权声明:本文为博主原创文章,可以转载,但必须注明来源。 https://blog.csdn.net/qq_40176716/article/details/82825848

无聊,看了道题:就是题目所说的,两个数(int类型)第一个数小于第二个数(1-999范围内),循环个位十位百位相加

例:15,19

1+5+1+6+1+7+1+8+1+9=40

思路:本来呢,看到这题,第一想法就是求余数,这样做1-99的能出来,100+的不好做。于是我想到了string的substring

  • public String substring(int beginIndex,
                            int endIndex)
  • Examples:

     "hamburger".substring(4, 8) returns "urge"
     "smiles".substring(1, 5) returns "mile"

    嗯,这样做就行了

  • 1.将num2-num1+1得到循环次数

    i = num2 - num1 + 1;
    		for (j = 0; j < i; j++) 
    {
    
    }
  • 2.num1的值先转为string,通过string的substring取出个位十位百位()并且最后再转化为int

    String num3 = String.valueOf(num1);
    if(num1/10==0)
    			{
    				res=Integer.parseInt(num3.substring(0, 1))+res;
    			}else if (num1/100==0) {
    				res=Integer.parseInt(num3.substring(0, 1))+Integer.parseInt(num3.substring(1, 2))+res;
    			}else if (num1/1000==0) {
    				res=Integer.parseInt(num3.substring(0, 1))+Integer.parseInt(num3.substring(1, 2))+Integer.parseInt(num3.substring(2, 3))+res;
    			}

    全部代码如下:

  • public static void main(String[] args) {
    		int num1 = 15, num2 = 19, i, j,res = 0;//num1,num2代表你想输入的两个数,res和
    		i = num2 - num1 + 1;//循环次数
    		for (j = 0; j < i; j++) {
    			String num3 = String.valueOf(num1);//将num1转化为string并且赋值到num3
    			if(num1/10==0)//如果num1/10=0即num小于10则
    			{
    				res=Integer.parseInt(num3.substring(0, 1))+res;
    			}else if (num1/100==0)//如果num1/100=0即num小于100大于等于10则
     {
    				res=Integer.parseInt(num3.substring(0, 1))+Integer.parseInt(num3.substring(1, 2))+res;
    			}else if (num1/1000==0) //如果num1/1000=0即num小于1000大于等于100则
    {
    				res=Integer.parseInt(num3.substring(0, 1))+Integer.parseInt(num3.substring(1, 2))+Integer.parseInt(num3.substring(2, 3))+res;
    			}
    			num1++;//num1+得到下一个值
    			
    		}
    		System.out.println(res);//输出结果
    	}

猜你喜欢

转载自blog.csdn.net/qq_40176716/article/details/82825848
今日推荐