Go: package main

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

func sliceAtoi(sa []string) ([]int, error) {
	si := make([]int, 0, len(sa))
	for _, a := range sa {
		i, err := strconv.Atoi(a)
		if err != nil {
			return si, err
		}
		si = append(si, i)
	}
	return si, nil
}

func getDigits(ary []int) (digits int) {
	sum := 0
	for _, v := range ary {
		sum += v
	}

	for sum != 0 {
		sum /= 10
		digits++
	}
	return
}

func getsTwoNumAsArray() (nums [][]int) {
	scanner := bufio.NewScanner(os.Stdin)

	for scanner.Scan() {
		str := scanner.Text()
		if str == "" {
			break
		}

		ary, _ := sliceAtoi(strings.Split(str, " "))
		nums = append(nums, ary)
	}

	return
}

func main() {
	ary := getsTwoNumAsArray()

	for _, v := range ary {
		fmt.Println(getDigits(v))
	}
}

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

C++: /*
AOJ_0002_DigitNumber

EOFはWindowsはCtrl+Z,UNIXはCtrl+D

*/

#include <iostream>
#include <string>
#include <cstdio>
#include <math.h>

using namespace std;

int main() {
	int a, b;

	//while (scanf("%d %d", &a, &b) != EOF){
	while (cin >> a >> b){
		cout << (int)log10(a + b) + 1 << endl;
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

#define rep(i, n) for (int i = 0; i < int(n); ++i)

int main() {
  int a, b;
  while (cin >> a >> b) {
    a += b;
    if (a == 0) {
      cout << 1 << endl;
      continue;
    }
    b = 0;
    while (a > 0) {
      a /= 10;
      ++b;
    }
    cout << b << endl;
  }
  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++;
	}
	for (int j = 0; j <= i;j++) {
		cout << k[j] << endl;
	}
	return 0;
}

C++: #define debug(x) cout<<#x<<": "<<x<<endl
#define rep(a, b) for(int unsafe_cnt=a; unsafe_cnt < b;unsafe_cnt++)
#include <iostream>
// #include <stdio.h>
// #include <vector>
// #include <math.h>
// #include <algorithm>
// #include <string>
// #include <map>
// #include <set>
using namespace std;

void newline() {cout << endl;}
template <typename T> void display(T input){cout << input;}
template <typename T> void put(T input){display(input); newline();}

int main() {
  int a, b;
  while(cin >> a){
      cin >> b;
      put(a + b);
  }
}

C++: #include<iostream>

using namespace std;

int main(){
	int a, b, sum, digit;

	while (cin >> a >> b) {
		sum = a + b;
		for (digit = 1; sum /= 10; digit++);
		cout << digit << endl;
	}

	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
long long int a,b;
while(cin>>a>>b){
int co=0;
long long int c;
if(c==0)co++;
while(c){co++;c/=10;}
cout<<co<<endl;
}
}

C++: #include<stdio.h>
#include<iostream>
using namespace std;
int main(){
	int a = 0, b = 0;
	int i = 0;
	while (1){
		cin >> a >> b;
		int c = a + b;
		if (a + b < 10){
			cout << "1" << endl;
		}
		else if (a + b < 100){
			cout << "2" << endl;
		}
		else if (a + b < 1000){
			cout << "3" << endl;
		}
		else if (a + b < 10000){
			cout << "4" << endl;
		}
		else if (a + b < 100000){
			cout << "5" << endl;
		}
		else if (a + b < 1000000){
			cout << "6" << endl;
		}
		else{
			cout << "7" << endl;
		}
	}
	return 0;
}

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

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

C++: #include<iostream>
using namespace std;
int main(){
  longint a,b;
  int x[200];
  int n = 0;
  while(cin >> a >> b){
    x[n] = 0;
    a = a + b;
    while(1){
      a = a/10;
      if(a >= 10)
        x[n]++;
    }
    n++;
  }

  for(int i = 0; i < n; i++)
    cout << x[i] << '\n';

  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>
#include<math.h>
#include<stdio.h>
using namespace std;

int stringers_number(int a)
{
	return int(log10(a) + 1);
}

int extract_the_number(char *n1,char *n2)
{
	int data_size1=0;
	int data_size2=0;
	for (data_size1=0;!(*(n1+data_size1)=='\0');data_size1++){}
	for (data_size2=0;!(*(n2+data_size2)=='\0');data_size2++){}
	/*int data_size1 = sizeof(n1) / sizeof(n1[0]);
	int data_size2 = sizeof(n2) / sizeof(n2[0]);*/
	/*for (i=0;i<=data_size-1;i++)
		if (a[i] == ' ')
			break; */
	int a1=0;
	int j=0;
	for (j=0;j<=data_size1 - 1;j++){
		int j_keta = int(*(n1+(sizeof n1[0])*j)) - 48;
		a1 = a1 + (pow(10,(data_size1 - j - 1))) * j_keta;
	}
	int a2=0;
	int k=0;
	for (k=0;k<=data_size2 - 1;k++){
		int k_keta = int(*(n2+(sizeof n2[0])*k)) - 48;
		a2 = a2 + (pow(10,(data_size2 - k - 1)))*k_keta;
	}
	return a1+a2;
}

int main()	
{
	char n1[100];
	char n2[100];
	while(cin >> n1 && cin >> n2){
		/*cin >> n1;
		cin >> n2;*/
		cout << stringers_number(extract_the_number(n1,n2)) << endl;
	}
	return 0;
}

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

int main(){

	int a[2];
	cin >> a[0] >> a[1];
	int check=a[0]+a[1],retval=1;
	while(check>=10){
		check/=10;
		retval++;
	}
	cout << retval << endl;

    return 0;
}

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

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

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

using namespace std;

int main() {
	int sum;
	int x,y;
	int kekka;
	
	while(1){
		cin >> x >> y;
		if ( cin.eof() ) { break; }
		sum = x + y;
		kekka = (double)log10((double) sum)+1;
		cout << kekka << endl;
	}
	
    return 0;
}

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

int main()
{
	int a, b;

	int sum = a + b;

	int keta;

	if (sum / 1000000 >= 1) keta = 7; 
	else if (sum / 100000 >= 1) keta = 6; 
	else if (sum / 10000 >= 1) keta = 5; 
	else if (sum / 1000 >= 1) keta = 4; 
	else if (sum / 100 >= 1) keta = 3; 
	else if (sum / 10 >= 1) keta = 2;
	else keta = 1;

	cout << keta << endl;

	return 0;
}

C++: #include <stdio.h>

int digit( x );

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

  while( scanf("%d %d", &a, &b) != EOF){
    x = digit( a+b );
    printf("%d\n", x);
  }
  return 0;
}

int digit( x ){
  int c=1;
  while( (x / 10) != 0){
    x /= 10;
    c++;
  }
  return c;
}

C++: #include <iostream>

using namespace std;

int main()
{
	int i,j;
	int a[200], b[200];
	int digit[200] = { 0 };

	for ( i = 0; i < 200; i++){
		if(!(cin >> a[i] >> b[i])){
			break;
		}

		int sum = a[i] + b[i];
		while (1){
			digit[i]++;
			sum /= 10;
			if (sum == 0){
				break;
			}
		}
	}

	for (j = 0; j < i; j++){
		cout << digit[j] << endl;
	}

	return 0;
}

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

using namespace std;

int main(){
	while(!cin.eof()){
		int a,b;
		cin>>a>>b;
		int c = a+b;
		int cnt = 0;
		do
		{
			cnt++;
			c /= 10;
		}while(c != 0);
		cout << cnt << endl;
	}
	return 0;
}

C++: #include <iostream>
#include <cmath>
int main() {
 int a,b;
 while (std::cin >> a >> b)
  std::cout << log10(a+b) << std::endl;
 return 0;
}