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<cstdio>
#include<iostream>
#include<cstring> // ??????????????????????±???????????????????
using namespace std;

int main(){
	int a,b,s=0,l;
	char str[100];
	cin >> a >> b;

	s=a+b;
	itoa(s,str,10); // s???10?????°??§??????????????????
	l = strlen(str); // ???????????????????????????
	cout << l << "\n";

}

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

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

int main(void)
{
	int32_t first  = 0;
	int32_t second = 0;

	while( std::cin >> first )
	{
		std::cin >> second;

		std::cout << static_cast<int32_t>(std::log10(first + second)) << std::endl;
	}

	return 0;
}

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) << endl;
    }
    return 0;
}

C++: #include<stdio.h>


int main()
{
	long a,b,sum,count=0;

	scanf("%ld %ld",&a,&b);

	sum=a+b;

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

	printf("%ld\n",count);
		
	
}

C++: #include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <map>
#include <cmath>
#include <string>
#include <sstream>
#include <iomanip>
#include <complex>
using namespace std;

#define ll long long
#define vvi vector< vector<int> >
#define All(X) X.begin(),X.end()
#define FOR(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define REP(i,n) for(int i=0;i<(int)(n);i++)
#define pb push_back 
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a,ll b){return a/gcd(a,b)*b;}

int main(){
	int n,m;
	while(cin >> n >> m){
		cout << (int)log10(n+m)+1 << endl;
	}
}

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

int main(){
  int a,b;

  while(scanf("%d%d",&a,&b) != EOF)
    {
      int cnt = 0;
      int sum = a + b;
      
      while(1)
	{ 
	  sum /= 10;
	  cnt++;
	  if(!sum) break;
	}
      cout << cnt << endl;
    }
  return 0;
}

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

int main(){
	string cunning="77675555555555555555555555555555555555555455555555555555555555555555555555555555555555555555555555555555";
	for(int i=0;i<104;i++) cout<<cunning[i]<<endl;
	return 0;
}

C++: #include <stdio.h>

int main(){

	int a=0,b=0;

	while (scanf("%d%d", &a, &b)!=EOF){
		
		if (a + b < 1000000){
			printf("6\n");
		}else if(a + b < 100000){
			printf("5\n");
		}else if (a + b < 10000){
			printf("4\n");
		}else if (a + b < 1000){
			printf("3\n");
		}else if (a + b < 100){
			printf("2\n"); 
		}else if (a + b < 10){
			printf("1\n",x);
		}
	}
	return 0;
}

C++: #include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int a,b;
	while(cin>>a>>b){
	int t=9000;
	for(int i=t;i;i--){
		for(int j=i;j;j--){
			if(i+j==2)a+=b;
		}
	}
	int cnt=0;
	while(a)a/=10,cnt++;
	cout<<cnt<<endl;
	}
	return 0;
}

C++: #include <iostream>
#include <cmath>
using namespace std;
 
int main(int argc, char** argv) {
    int a, b; // 0 ??? a, b ??? 1000000
    while(cin >> a >> b) {
        cout << (int)floor(log10((double)a+b))+1 << endl;
    }
    return 0;
}

C++: #include<stdio.h>
#include<iostream.h>
using namespace std;
int main(){
	int ab[200][2],f,i=0,a,g,k=0;
	while(cin<f){
		scanf("%d %d",&ab[i][1],&ab[i][2]);
		i++;
	}
	for(int j=0;j<i;j++){
		a=ab[j][1]+ab[j][2];
		for(g=0;;g++){
			a=a/10;
			k++;
			if(a==0){
				printf("%d\n",k);
				break;
			}
		}
		k=0;
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

int main() {
	
	int a, b;
	
	while( cin >> a >> b) {
		
		int count = 0;
		
	int sum = a + b;
	
	while( sum != 0) {
		
		sum /= 10;
		count ++;
		
	}
		cout << count << "\n";
}
	return 0;
}

C++: #include<stdio.h>

int main(){
 int i,j,k;

 while(scanf("%d %d",&i,&j)!=EOF){
  i+=j;
  for(k=i,j=1;k<10;j++,k/=10)
   ;
  printf("%d\n",j);
 }
 return 0;
}

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

int main() {
  int a, b, N;
  stringstream ss;
  while (cin >> a >> b) {
    ss << a + b;
    N = ss.str().size() - 1;
    cout << ss.str()[N] << endl;
  }
  return 0;
}

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

int main() {
	long long int a, b, c;
	int x;
	bool flg = true;

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

		c=a+b;

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

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


    }
}

C++: #include <iostream>

int main(){
  int a, b, c;
  int i = 10;
  int num = 1;
  
  std::cin >> a;
  std::cin >> b;
  
  c = a + b;
  while(1){
    if(c/i!=0){
      num++;
      i *= 10;
    }else{
      break;
    }
  }
  std::cout << num << std::endl;
  
  return 0;
}

C++: #include <map>
#include <string>
#include <iostream>
#include<vector>
#include <set>
#include<math.h>
#include<algorithm>

using namespace std;

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

C++: #include <iostream>
#include <sstream>
int main()
{
        for(uint8_t i=0;i<200;i++)
        {
                std::string str;
                getline(std::cin, str);
                if(str=="eof")
                        break;
                std::stringstream s(str);
                uint32_t a,b;
                s>>a>>b;
                uint32_t sum=a+b;
                uint8_t count;
                for(count=0;sum>0;count++)
                        sum=sum/10;
                if(count==0)
                        count++;
                printf("%u\n",count);
        }

        return 0;
}

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

using namespace std;

 string IntToString(int num){
	stringstream ss;
	ss << num;
	return ss.str();
}


int main(void){
	int count = 0;
	int arr[200] = {0, };
	for (int i=0; i<200; i+=2){
		int a, b;
		cin >> a >> b;
		if (((a < 0) || (b < 0)) || ((1000000 < a) || (1000000 < b))){
			break;
		}
		arr[i] = a;
		arr[i+1] = b;

		++count;
	}
	for (int i=0; i<(2*count); i+=2){
		int sum = arr[i]+arr[i+1];
		string str = IntToString(sum);
		cout << str.length() << endl;
	}
	return 0;
}