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>
#include<vector>
using namespace std;

int main(){
	int a, b;
	vector<int> output;
	while(cin >> a >> b){
		int sum = a + b;
		int digit = 0;
		while(sum){
			sum /= 10;
			digit++;
		}
		output.push_back(digit);
	}
	for(vector<int>::iterator itr = output.begin(); itr != output.end(); ++itr){
		cout << *itr << 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,sum;
    int t,dcount=0;
    while(scanf("%d",&i) != EOF && dcount <200)
    {
        int counter=0;
        int sum=0;
        cin >> j;
        sum=i+j;

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

        sum++;
        cout << counter <<endl;
        dcount++;
    }
}

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

int main() {
	int a[3],b[3];
	int ans[3];
	for(int i=0; i<1; i++) scanf("%d %d", &a[i], &b[i]);

	int cnt;
	int keta[3] = {0,0,0};
	for(int i=0; i<1; i++) {
		cnt = a[i] + b[i];
		while(cnt >= 10) {
			cnt/=10;
			keta[i] ++;
		}
		keta[i]++;
	}

	printf("%d\n", keta[0]);

	return 0;
}

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

C++: #include <stdio.h>

int main(){
	int a,b,c,output;
	while (scanf("%d %d", &a, &b) != EOF) {
		c = a + b;
		output = 0;
		while(c>0){
			c /= 10;
			output++;
		}
		printf("%d\n", output);
	}

	return 0;
}

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

int main()
{
	long int a,b,sum;/*足す数*/
	
	while(scanf("%d %d",&a,&b)!=EOF)
	{
		if(a<0 || b<0)
			continue;
		sum = a+b;
		printf("%d\n",(int)log10((float)sum)+1);
	}
	return 0;
}

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

int main(){
    int count = 0;
    int digit_num;
    int a[200],b[200];
    int sum;
    while(1){
        cin >> a[count] >> b[count];
        if(a[count] >=0 && a[count] <= 1000000)
            if(b[count] >= 0 && b[count] <= 1000000){
                sum = a[count] + b[count];
                digit_num = 1;
                while((sum/10) != 0){
                    digit_num ++;
                    sum = sum / 10;
                }
                cout << digit_num<<endl;
                count++;
                if(count >200) break;
            }
    }
    return 0;
}

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

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

	return 0;
}

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

#define     MAX_NUMBER     200

using namespace std;

int main(){
	int num1,num2;
	char str[10];
	int i;

	while(cin >> num1 >> num2){
		//整形
		sprintf(str,"%d\0",(num1 + num2));

		// 文字数計測
		for(i=0;str[i] != '\0';i++){
		}

		// 文字数表示
		cout << i << endl;
	}

	return 0;
}

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

int main(){
	int a,b,s,o;
	while(scanf("%d %d", &a, &b) != EOF){
		s = a + b;
		o = 0;
		while(s != 0){
			s /= 10;
			o++;
		}
		printf("%d\n", o);
	}

	return 0;
}

C++: //
//  main.cpp
//  sanpie
//
//  Created by h3037178 on 2017/07/28.
//  Copyright ?? 2017??´ ?????£?????????. All rights reserved.
//

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int i,o;
    for(int p=0;p<200;p++){
        cin>>i>>o;
    }
    for(int k=0;k<200;k++){
        if(i>1000000||o>1000000){
            break;
        }
    if(i+o<10){
        cout<<"1"<<endl;
    }else if(i+o<100){
        cout<<"2"<<endl;
    }else if(i+o<1000){
        cout<<"3"<<endl;
    }else if(i+o<10000){
        cout<<"4"<<endl;
    }else if(i+o<100000){
        cout<<"5"<<endl;
    }else if(i+o<1000000){
        cout<<"6"<<endl;
    }else{
        cout<<"7"<<endl;
    }
    }
}

C++: #include <iostream>
using namespace std;
int main(){
int A,B,C,i=10,test=1,k=0;
while(k=0){
cin >> A >> B;
C = A + B;
if(C<10){
cout << 1 << endl;
}
else{
while(test!=0){
i = i * 10;
test++;
if(C<i){
cout << test << endl;
test = 0;
}
}
}
}
}

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

int main(){
  for(int a,b,c,ans=1;cin >> a;cin >> b;){
  c=a+b;
  if(c>=10){
    ans++;
  }
  if(c>=100){
    ans++;
  }
  if(c>=1000){
    ans++;
  }
  if(c>=10000){
    ans++;
  }
  if(c>=100000){
    ans++;
  }
  if(c>=1000000){
    ans++;
  }
  cout << ans;
}
  return 0;
}

C++: #include <iostream>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <numeric>
#include <cmath>
using namespace std;
typedef vector<int> VI;
#define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i )

int main() {
    VI nums;
    
    int a, b;
    while (cin >> a >> b) {
        nums.push_back(a + b);
    }
    
    for (int n : nums) {
        cout << floor(log10(n)) + 1 << endl;
    }
    
    return 0;
}

C++: #include <stdio.h>

int main(void){
	int a, b;
	int cnt = 0;

	while(scanf("%d %d", &a, &b) != EOF){
		cnt = 0;
		a = a+b;
		while(a != 0){
			a = a / 10;
			cnt++;
		}
		printf("%d\n", cnt);
	}

	return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
  int a,b,c,ans;

  while(cin>>a>>b){
    c=a+b;
    ans=1;
    while(c>=10){
      c/=10;
      ans++;
    }
    cout<<ans<<endl;
  }

  return(0);
}

C++: #include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#define shosu(x) fixed<<setprecision(x)
using namespace std;
int main(){
	int x,y;
	while(cin>>x>>y){
		int sum=x+y;
		cout<<(int)log10(sum)+1<<endl;
	}
}

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

using namespace std;

int digitsofnum(int n) {
	int j = 0;
	while (n > 0) {
		n = n / 10;
		j++;
	}
	return j;
}

int main()
{
	int a, b;
	vector<int> dst;
	while (cin >> a >> b)
		dst.push_back(digitsofnum(a + b));
	for (vector<int>::iterator it = dst.begin(); it < dst.end(); it++)
		cout << *it << endl;
	return 0;
}

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

#define rep(x,to) for(x=0;x<to;x++)
#define rep2(x,from,to) for(x=from;x<to;x++)

using namespace std;


int main(void){

int a, b, c;

	while( cin >> a >>b ){
		c = a + b;
		int k=0;
		while (c > 0){
			k++;
			c /=10;	
		}
		if(k==0) k=1;
		cout << k << endl;
	}
		return 0;
}

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

int a;
int b;
c = dainyuu()

int main() {
  while (c != EOF) {
    dainyuu();
    int i;
    a = a + b;
    while(a > 0) {
      a = a / 10;
      ++i;
    }
    
    cout << i << endl;
    
  }
}

int dainyuu() {
  cin >> a >> b;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main()
{
	    int a,b;
	    while(cin>>a>>b)
	    {
		cin>>a>>b;
		int c =7;
		for (int d =1000000;d>=0;d=d/10)
		{
			if((a+b)/d>=1)
		   {
			   cout<<c<<endl;
			   break;
		}
			else c=c-1;
			}
	}
}