Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	sc := bufio.NewScanner(os.Stdin)
	for sc.Scan() {
		str := strings.Split(sc.Text(), " ")
		if len(str) != 2 {
			return
		}
		a, err1 := strconv.ParseInt(str[0], 10, 64)
		b, err2 := strconv.ParseInt(str[1], 10, 64)
		if err1 != nil || err2 != nil {
			return
		}
		a += b
		for b = 0; a > 0; a /= 10 {
			b++
		}
		fmt.Println(b)
	}
}

C++: #include <stdio.h>
#include <string.h>

int main()
{
    int IsB = 0,i = 0;
    char a[100],b[100],*digits;
    while(1){
        char str = '\0';
        scanf("%c",&str);
        if(str == '\0')break;
        if(str == ' '){
            i = 0;
            IsB = 1;
        }else if(str == '\n'){
            sprintf(digits,"%d",atoi(a) + atoi(b));
            printf("%d\n",strlen(digits));
            i = 0;
            IsB = 0;
        }else if(IsB == 0){
            a[i++] = str;
        }else{
            b[i++] = str;
        }
    }
}

C++: #include<iostream>
using namespace std;
class DigitNumber{ 
    public:
        void solve(int a,int b){
            string sum=to_string(a+b);
            if(sum=="0")cout<<0<<endl;
            else cout<<sum.length()<<endl;
        }
};
int main(){
    DigitNumber inst;
    int a,b;
    while(true){ 
        cin>>a>>b;
        inst.solve(a,b);
    }
}

C++: #include <stdio.h>

int main(void)
{
	int a,b;
	int i;
	int count_1=0;
	int count_2 = 0;
	scanf("%d %d",&a,&b);
	
	while(a / 10 >= 1)
	{
		a = a/10;
		count_1++;
	}
	while(b / 10 >= 1)
	{
		b = b/10;
		count_2++;
	}
	printf("%d\n",count_1+count_2+2);
}

C++: #include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;
int main()
{
    long long a,b;
    while(scanf("%lld %lld",&a,&b)!=EOF)
    {
        cout << floor(log10(a+b))+1 << endl;
    }
    return 0;
}

C++: #include <iostream>

int Count(int value)
{
    int count = 1;
    while (value >= 10) {
        value /= 10;
        count++;
    }
    return count;
}

int main()
{
    int a, b;
    while (std::cin >> a >> b) {
        std::cout << Count(a + b) << std::endl;
    }

    return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <vector>
#include <cmath>

#define pb push_back

using namespace std;

typedef long long ll;

int main()
{
        int a, b;
        while(cin >> a){
                cin >> b;
                if(a + b == 0) cout << 1 << endl;
                cout << (int)log10(a+b) + 1 << endl;
        }

        return 0;
}

C++: #include<iostream>
#include<cstdio>

using namespace std;

int main(){
   int a,b,x,i;
   
   while(cin>>a>>b){
      i = 0;
      x = a+b;
      
      for(;;){
         if(x <= 0)
            break;
         
         x = x/10;
         i++;
      }
      printf("%d\n",i);
   }
   return 0;
}

C++: #include <iostream>
#include <cmath>
using namespace std;

int main(){
	int a,b;
	for( int i=0;i<200;i++ ){
		cin>>a>>b;
		if( a<0||b<0||1000000<a||1000000<b)
			break;
		cout<<(int(log10(a+b))+1)<<endl;
	}
	return 0;
}

C++: #include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <utility>
#include <ctime>
#define INF 999999999
#define mod 1000000007

#define rep(i,n) for(int i=0;i<int(n);i++)
#define rrep(i,n) for(int i=(n);i>=0;i--)
#define REP(i,a,b) for(int i=(a);i<int(b);i++)
#define all(x) (x).begin(),x.end()
#define pb push_back
#define MOD(x) (x%(mod))
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef pair<int,int> pi;

bool debug=false;
/*---------------------------------------------------*/

int main(){
  int a,b,sum,cnt;
  while(cin>>a>>b){
    sum=a+b;cnt=0;
    while(sum){
      cnt++;
      sum/=10;
    }
    cout<<cnt<<endl;
  }
  return 0;
}

C++: #include <algorithm>
#include <sstream>
#include <iostream>
#include <list>
#include <map>
#include <math.h>
#include <stack>
#include <stdio.h>
#include <string>
#include <queue>
#include <vector>
using namespace std;

int main()
{
	int x, y, ans;
	while (cin >> x >> y && x != EOF) {
		ans = x + y;
		if (ans < 10) cout << 1 << endl;
		else if (10 <= ans && ans < 100) cout << 2 << endl;
		else if (100 <= ans && ans < 1000) cout << 3 << endl;
		else if (1000 <= ans && ans < 10000) cout << 4 << endl;
		else if (10000 <= ans && ans < 100000) cout << 5 << endl;
		else if (100000 <= ans && ans < 1000000) cout << 6 << endl;
		else cout << 7 << endl;
	}
}

C++: #include<iostream>
#include<string>
#include<algorithm>
#include<functional>
#include<vector>
#include<math.h>
#define L(_i,_N) for(int _i=0;_i<_N;_i++)
typedef long long int lli;
using namespace std;

int main() {
	int a, b;
	while (cin >> a >> b) {
		int Count = 0;
		a += b;
		while (a > 0) {
			a /= 10;
			Count++;
		}
		cout << Count << endl;
	}
	return 0;
}

C++: #include<iostream>
#include<math.h>
using namespace std;

int main(){
	int a,b,keta[300] = {0},kcor = 0;
	while(cin >> a){
		cin >> b;
		if(a+b == 0){
			keta[kcor] = 1;
		}
		else{
			keta[kcor] = log10(double(a+b))+1.000001;
		}
		kcor++;
	}
	for(int i = 0;i < kcor;i++){
		cout << keta[i] << endl;
	}
	return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <cctype>
#include <cstring>
#include <string>
#include <vector>


using namespace std;

int main()
{
    int i,j;
    int t;
    while(scanf("%d",&i) != EOF)
    {
        int sum=0;
        cin >> j;

        while(i!=0)
        {
            t=i%10;
            i= i/10;
            if(t!=0)
                sum++;
        }

        while(j!=0)
        {
            t=j%10;
            j= j/10;
            if(j!=0)
                sum++;
        }

        sum++;
        cout << sum <<endl;
    }
}

C++: include <iostream>
using namespace std;

int main(){ 
    int a,b,cnt=1,i,j=10;

    while(cin>>a>>b){
        int add=a+b;
        while(1){
            i = add - j;
            if(i>=0)cnt++;
            else break;
            j *= 10;
        }       
        cout << cnt << endl;
    }
    return 0;
}

C++: #include <stdio.h>

int main()
{
	int a,b;
	int i;

	for(i=0;i<200;i++)
	{
		scanf("%d", &a);
		scanf("%d", &b);

		if((a+b)<10)
			printf("1\n");
		else if((a+b)>=10 && (a+b)<100)
			printf("2\n");
		else if((a+b)>=100 && (a+b)<1000)
			printf("3\n");
		else if((a+b)>=1000 && (a+b)<10000)
			printf("4\n");
		else if((a+b)>=10000 && (a+b)<100000)
			printf("5\n");
		else if((a+b)>=100000 && (a+b)<1000000)
			printf("6\n");
		else if((a+b)>=1000000 && (a+b)<10000000)
			printf("7\n");
	}
}

C++: #include<cstdio>
#include<string>
#include<iostream>
#include<algorithm>
#define _USE_MATH_DEFINES
#include<math.h>
#include<queue>
#include<set>
#include<vector>
#define INF 100000000

#define MAX_N 100
#define MAX_set 200

typedef long long int ll;
using namespace std;


int main(){

	int a,b;

	while(scanf("%d %d", &a, &b) != EOF){
		printf("%d\n", (int)log10((double)a+b) + 1);
	
	}

	return 0;

}

C++: a;main(b){for(;~scanf("%d%d",&a,&b);printf("%d\n",log10(a+b)+1));}

C++: #include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;

int main(void){
	double n;
	int a,b;
	while(scanf("%d %d",&a,&b)!=EOF){
		a+=b;
		if(a!=0) n=log((double)a)/log(10.0);
		else n=-1;
		printf("%d\n",(int)(n+1.0));
	}
	return 0;
}

C++: #include <stdio.h>

int a, b;

int digits(int n)
{
  if (n < 10) return 1;
  return digits(n/10) + 1;
}

int main(void)
{
  while(scanf("%d %d",&a,&b) == 2)
    printf("%d\n",digits(a + b));
  return 0;
}