Go: package main

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

func main() {
        sc := bufio.NewScanner(os.Stdin)

        for sc.Scan() {
                digits := 0
                num := 0
                for _, s := range strings.Fields(sc.Text()) {
                        i, _ := strconv.Atoi(s)
                        num += i
                }
                for num > 0 {
                        digits += 1
                        num /= 10
                }
                fmt.Printf("%d\n", digits)
        }
}

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

void digit(float num, int &n);

void digit(float num, int &n){

	if(static_cast<float>(num)/10.0 >= 1){
		++n;
		digit(num/10, n);
	}else{
		return;
	}

}

int main(){

	int a,b;
	int n;

	while(cin>>a>>b){

		n=1;
		digit(a+b,n);
		cout<<n<<"\n";
	}
	return 0;

}

C++: #include<iostream>
using namespace std;
   
int main(){
   int a[200],b[200],c[200],digit[200];
   int i,imax,j;
   i = 0;
   j = 1;
   for(i=0;i<200;i++)digit[i] = 1;
   while(j){
     cin >> a[i] >> b[i];
     c[i] = a[i] + b[i];
     i++;
     if(a[i]==NULL||b[i]==NULL)
       break;
   }
   
   imax = i;
   
   for(i=0;i<imax+1;i++){
     while(c[i]>=10){
       c[i] /= 10;
       digit[i]++;
     }
   }
   
   for(i=0;i<imax+1;i++)cout << digit[i] << endl;
   
   return 0;
}

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

int main()
{
  int a,b;

  for(int i=0;i<3;i++){
    cin>>a;
    cin>>b;

    if((a+b)/10==0)
      cout<<1<<endl;
    else if(0<(a+b)/10 && (a+b)/10<10)
      cout<<2<<endl;
    else if (0<(a+b)/100 && (a+b)/100<10)
      cout<<3<<endl;
    else if (0<(a+b)/1000 && (a+b)/1000<10)
      cout<<4<<endl;
    else if (0<(a+b)/10000 && (a+b)/10000<10)
      cout<<5<<endl;
    else if (0<(a+b)/100000 && (a+b)/100000<10)
      cout<<6<<endl;
    else if (0<(a+b)/1000000 && (a+b)/1000000<10)
      cout<<7<<endl;
  }

  return 0;
}

C++: #include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int main(void){
	int a;
	int b;
	int n;
	int s;
	int c;

 	while (scanf("%d %d", &a,&b) != EOF){
		s = a + b;
		if (s == 0)printf("1\n");
		else{
			for (int i=1;i<10;i++){
				s = s / 10;
				if (s == 0){
					printf("%d\n", i);
					break;
				}
			}
		}

	}

		return 0;
	}

C++: #include <iostream>

using namespace std;
int main()
{
	int a,b;
	while (1){
		cin >> a;
		if (a == EOF) return;
		cin >> b;
		if (b == EOF) return;
		cout << a + b << endl;
	}
}

C++: #include<bits/stdc++.h>
using namespace std;

int main(){
	cin.tie(0),ios::sync_with_stdio(false);
	int a,b;
	while(cin>>a>>b){
		int sum=a+b;
		int cnt=0;
		while(sum){
			++cnt;
			sum/=10;
		}
		cout<<cnt<<"\n"s;
	}
}

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

C++: #include<cstdio>

int main()
{
	int a,b;
	while(scanf("%d %d",&a,&b)!=(EOF))
	{
		int count=1;
		double d=a+b;
		while(d>=10)
		{
			d/=10;
			count++;
		}
		printf("%d",count);
	}
	return 0;
}

C++: #include <iostream>

using namespace std;

int main() {
	int a[500], b[500],sum[500],d[500],k[500];
	int i = 0;
	k[500] = 0;
	while (1) {
		cin >> a[i] >> b[i];
		if (a[i] == 0 && b[i] == 0)break;
		sum[i] = a[i] + b[i];
		while (!sum[i]) {
			sum[i] /= 10;
			k[i]++;
		}
		i++;
	}
	while (!k[i]) {
		cout << k[i] << endl;
	}
	return 0;
}

C++: #include <iostream>

using namespace std;

int main()
{
    int a,b;
    while(cin>>a>>b){
        int c=a+b;
        int i=1;
        for(;c/=10;c>=1){
            i++;
        }
        cout<<i<<endl;
    }
}

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

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

C++: #include <iostream>

u_int getDigit(u_int n){
	u_int digit = 0;
	
	while(n > 0){
		n /= 10;
		++digit;
	}
	
	return digit;
}
  
int main(){
    u_int a, b;
    
    while(std::cin >> a >> b){
        std::cout << getDigit(a + b) << std::endl;
    }
	
    return 0;
}

C++: //--------------------------------------------------template----------------------------------------//
//c
#include <stdio.h>
#include <time.h>
#include <math.h>
//c++
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <functional>
#include <cstdlib>
#include <sstream>
#include <string>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <vector>
#include <complex>
#include <cmath>
//c++11
#include <tuple>
#define all(c) ((c).begin(),(c).end())
#define rall(c) (c).rbegin(),(c).rend()
//#define sort(v,n) sort(v,v+n)
//#define vsort(v) sort(v.begin(),v.end())
#define vvsort(v) sort(v.rbegin(),v.rend())
#define ll long long
#define pb(a) push_back(a)
#define fi first
#define se second
#define inf 999999999
using namespace std;
const ll MOD = 1e9 + 7;
const double PI = acos(-1.0);
//---------------------------------------------------------------------------------------------//
int main() {
	int a, b;
	while (cin>>a>>b) {
		int c = a + b;
		int digit = 0;
		while (c > 0) {
			c /= 10;
			digit++;
		}
		cout << digit << endl;
	}
}

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 <iostream>

using namespace std;

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

    return 0;
}

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

using namespace std;

int main()
{
	int a, b;
	cin >> a >> b;
	
	int sum = a + b;
	int count = 0;
	
	for(int i = 10; sum != 0; i *= 10)
	{
		int diff = sum % i;
		sum -= diff;
		count++;
	}
	
	cout << count << endl;
	return 0;
}

C++: #include <iostream>

using namespace std;

int main(){
	int a,b;
	cin>>a>>b;
int c=0;
int n;
n=a+b;
while (n>0){
	c++;
	n=n/10;
}

cout<<c<<endl;
}

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

int main() {
/*	int a[3];
	cin >> a[0] ;
	a[1] = 3;
	a[2] = a[0] * 10;

	cout << a[0] <<" " << a[1] <<" "<< a[2] << endl;
	
	for (int i = 0; i < 3; i++) {
		cout << a[i] << endl;
	}


	sort(a,a+5);
*//*
	int a[10];
	for (int i = 0; i < 10; i++) {
		cin >> a[i];
	}
	
	sort(a,a+10,greater<int>());

	for (int i = 0; i < 3; i++) {
		cout << a[i]<<endl;
	}
*/
	int ans = 0;
	int a, b,c;
	for(int i=0;i<200;i++) {
		ans = 0;
		cin >> a >> b;
		c = a + b;

		if ( c==0   ) {
			ans = 1;
		}
		else{
			while (c > 0) {
				c /= 10;
				ans++;
			}
		}
		cout << ans << endl;
	}
	return 0;;
}

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

int digit(int num){
	if((num / 10) > 0){
		return (digit(num/10))+1;
	}
	else return 1;
}

int main(){
	int num1,num2,result=0;
	char buf[32];
	while(1){
		if(scanf("%d %d",&num1,&num2) == 0)break;
		result = 0;
		result += digit(num1);
		result += digit(num2);
		cout << result << endl;
		break;
	}
	return 0;
}