Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
	"unicode/utf8"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	var strs []string
	var a, b, sum int64
	var digits int
	for scanner.Scan() {
		strs = strings.Split(scanner.Text(), " ")
		a, _ = strconv.ParseInt(strs[0], 10, 64)
		b, _ = strconv.ParseInt(strs[1], 10, 64)

		sum = a + b
		// goでlen(string)はbyte数が返る
		digits = utf8.RuneCountInString(strconv.FormatInt(sum, 10))

		fmt.Printf("%d\n", digits)
	}
}

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

int main(){
	int i;
	int count;
	int a[200],b[200],sum[200];
	int temp = 0;

	while(cin >> a[temp] >> b[temp])
	{
		sum[temp] = a[temp] + b[temp];
		temp++;	
	}

	for (i = 0; i < temp; i++)
	{
		count = 0;

		while(sum[i] > 0){
			sum[i] = sum[i] / 10;
			count++;
		}

		cout << count << endl;

	}

	return 0;

}

C++: #include <bits/stdc++.h>
using namespace std;
int c,d,a,b;

int main (){
	cin>>a>>b;
	d=a+b;
	if(d%10==d){
		cout<<1<<endl;
	}
	else if(d%100==d){
		cout<<2<<endl;
	}
	else if(d%1000==d){
		cout<<3<<endl;
	}
	else if(d%10000==d){
		cout<<4<<endl;
	}
	else if(d%100000==d){
		cout<<5<<endl;
	}
	else if(d%1000000==d){
		cout<<6<<endl;
	}
	else if(d%10000000==d){
		cout<<7<<endl;
	}
}

C++: #include<iostream>

using namespace std;

int main(){
	
	int num,i;

	int a[200],b[200],sum[200],figure;
	
	for(i=0;i<3;i++){
		do{
			cin >> a[i] >> b[i];
		}while((a[i]<0||a[i]>100000)&&(b[i]<0||b[i]>100000));
		
		sum[i] = a[i] + b[i];
		
	}
	
	for(i=0;i<num;i++){
		figure = 1;
		while(sum[i]/10!=0){
			sum[i] = sum[i]/10;
			figure++;
		}
		cout << figure << "\n";
	}
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
	int a,b,c,d=0;
	cin>>a>>b;
	c=a+b;
	if(c==0){
		goto aaa;
	}
	while(true){
		d=d+1;
		if(c<=9){
			break;
		}
		c=c/10;
	}
	aaa:
	cout<<d;
}

C++: #include <iostream>
#include <string>
#include <cmath>

int count_digits(long number)
{
	int result = 1;
	while (number >= 10) {
		number /= 10;
		++result;
	}
	return result;
}

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

	return 0;
}

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

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

C++: #define scanf_s scanf
#include <stdio.h>
//#include <iostream>
//using namespace std;
#define MAX 200
int main(void)
{
	int a, b, i, sum, cou = 0;
	int ans[MAX] = { 0 };
	while (scanf_s("%d %d", &a, &b) != EOF) {
		sum = a + b;
		++ans[cou];
		if (sum != 0){
			while (1) {
				if (sum <= 1) break;
				sum /= 10;
				++ans[cou];
			}
		}
		printf("%d\n", ans[cou]);

		++cou;
	}
	for (i = 0; i < cou; ++i) {
		if (i != 0) printf("\n");
		printf("%d", ans[i]);
	}
}

C++: #include <iostream>
//#include <cstdio>
#include <cmath>
using namespace std;
 
//0002
int main(){
	int a, b, c;
	while(cin >> a >> b){
		c = a + b;
		cout << 1 + (int)log10(c);
	}
	return 0;
}

C++: #include<bits/stdc++.h>

using namespace std;

int main()
{
  int a,b;

  while(cin>>a>>b){
    int ans = 0;
    int sum = a + b;

    while(1){
      sum = sum / 10;
      ans++;
      if(sum == 0){
        break;
      }
    }
    cout<<ans<<endl;
  }
  
  return 0;
}

C++: #include<stdio.h>
int main(void)
{
	long a,b,ab,c=1;
	//while(1){
		scanf("%d %d",&a,&b);
		ab = a + b;
		while(ab>=10){
			ab = ab / 10;
			c++;
		}
		printf("%d\n",c);
		return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <queue>
using namespace std;
typedef long long int ll;
const int INF = 100000000;
#define rep(i,n) for(int i=0;i<(int)(n);i++)
int main(){
    int a, b;
    vector <int> ans;
    while(cin >> a >> b){
        int c = a + b, count = 0;
        while(c){
            count++;
            c /= 10;
        }
        cout << count << endl;
    }
    return 0;
    
}

C++: #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
  int a,b;
  char ans[16];
  while(scanf("%d %d",&a,&b) != EOF){
    if(a == 0 && b == 0)break;
    sprintf(ans,"%d",a+b);
    int len = strlen(ans);
    cout << len << endl;
  }
}

C++: #include<iostream>

int a, b, n, m;

int main()
{
	while(std::cin>>a>>b)
	{
		n = a + b;
		m = 1;
		while(n>=10)
		{
			n=n/10;
			++m;
		}
		printf ("%d\n",m);
	}
	return 0;
}

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

using namespace std;

int main()
{
	int a[200], b[200], n, ans=0;
	for (int i = 0; i < 200; i++) 
	{
		cin >> a[i] >> b[i];
		n = a[i] + b[i];
		while (n >= 1) 
		{
			n /= 10;
			ans++;
		}
		cout << ans << endl;
		ans = 0;
	}
}

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

int main(){
    int a,b,c,i;
	for(int j=0;j<250;j++){
		cin >> a >> b;
		if(a<0 || b<0)break;
		c = a+b;
		for(i=1;true;i++){
			c = c/10;
			if(c==0)break;
		}
		cout << i << endl;
	}

    
    return 0;
}

C++: #include <iostream>
#include <vector>
#include "math.h"

int main(int argc, char const *argv[]){
	int fig_1,fig_2;
	std::vector<int> dig;

	while(std::cin >> fig_1 >> fig_2){
		dig.push_back(log10(fig_1+fig_2)+1);
	}

	for (int i = 0; i < dig.size(); ++i){
		std::cout << dig[i] << std::endl;
	}

	return 0;
}

C++: #include <stdio.h>

int main(){
	int a, b, t, ans;
	
	while(1){
		ans = 0;
		scanf("%d %d", &a, &b);
		if(a == EOF)
			break;
		t = a + b;
		while(1){
			if((t / 10) == 0)
				break;
			else{
				t /= 10;
				ans++;
			}
		}
		printf("%d\n", ans + 1);
	}
	
	return 0;
}

C++: #include <cstdio>
int main()
{
        for(;;)
        {
                int a,b,c;
                scanf("%d %d",&a,&b);
                if(a==EOF)break;
                c=a+b;
                int cnt,i;
                i=1;
                for(cnt=0;;cnt++)
                {       
                        if(c/i==0)break;
                        i=i*10;
                }
                printf("%d\n",cnt);
        }
        
        return 0;
}

C++: #include<stdio.h>


int main(){
	char a[21];
	char b[21];
	int A;
	int B;
	int i;
	int l=1;
	fgets(a,sizeof(a),stdin);
	fgets(b,sizeof(b),stdin);
	sscanf(a,"%d", &A);
	sscanf(b,"%d", &B);
	i=A+B;
	while((i  >= 10)){
		i=i/10;
		l=l+1;
	}
	printf("%d" ,l);
}

C++: #include <cstdio>
using namespace std;

int main() {
  while (1) {
    int a, b;
    if (scanf("%d%d", &a, &b) != 2) break;

    int sum = a+b;
    int cnt = 0;
    while (sum > 0) {
      cnt++;
      sum /= 10;
    }

    printf("%d\n", cnt);
  }
}

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

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

C++: 
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
#include <map>
#define pi 3.14159265358979323846264338
using namespace std;

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

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

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

C++: #include<iostream>
#include<fstream>
#include<sstream>

using namespace std;

template <typename T> std::string tostr(const T& t){
    std::ostringstream os; os<<t; return os.str();
}

int main(){
    int n, m;
    string ns, ms;
    int l = 0, u = 1000000;
    int cnt = 0;
    string str;

    while(cin >> ns >> ms){
        cnt++;
        if(cnt >= 200) break;
        sscanf(ns.c_str(),"%d",&n);
        sscanf(ms.c_str(),"%d",&m);
        if(l<= n && n <= u && l <= m && m <= u){
            cout << tostr(n+m).size() << endl;
        }
    }
    return 0;
}