怎么实现两个int类型的整数 a与b之和的位数与a的位数相同,输出true?

怎么实现两个int类型的整数 a与b之和的位数与a的位数相同,输出true

直接整形转化为字符串,然后获取字符串的位数就可以做比较了

#include
using namespace std;
#define ll long long
int main()
{
ll sum;
int a,b;
scanf("%d %d",&a,&b);
sum=a+b;
int ans1=0,ans2=0;
int m=a,n=sum;
while(m){
ans1++;
m/=10;
}
while(n){
ans2++;
n/=10;
}
if(m==n)
printf("true\n");
return 0;
}

import java.util.Scanner;

import sun.security.util.Length;

/*
 *   怎么实现两个int类型的整数 a与b之和的位数与a的位数相同,输出true?
 */
public class ClassTest01 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入第一个数a:");
        int a = input.nextInt();
        System.out.print("请输入第一个数b:");
        int b = input.nextInt();
        String strA = String.valueOf(a);
        String[] stra = strA.split("");
        System.out.println("位数为:" + stra.length);
        int Last = (int) Math.pow(10, stra.length);
        int Max = Last - a - 1;
        System.out.println("当输入b的值小于" + Max + "时,"
                + "int类型的整数 a与b之和的位数与a的位数相同");
        String result=(b<=Max)?"true":"false";
        System.out.println(result);
    }
}
//请输入第一个数a:123
//请输入第一个数b:123
//位数为:3
//当输入b的值小于876时,int类型的整数 a与b之和的位数与a的位数相同
//true

//初学者,可能思路比较麻烦,搞了好久,勿喷,采用int类型化为字符串,字符串化为数组(也可能可以直接输出字符串长度),
然后以数组长度来当输入的int数的位数,那么10的位数次方减去a-1就是b的最大取值范围!不知道这样能不能说清

做一个for循环,定义一个变量(用来检查字节,)再做一个for循环,时间有限,差不多就是这个意思

    int a = 10;
        int b = 1;
        boolean isSameAsA = String.valueOf(a).length() == String.valueOf(a+b).length();
        System.out.println(isSameAsA);