Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func nextInt() (int, error) {
	return strconv.Atoi(nextString())

}

func main() {
	scanner.Split(bufio.ScanWords)

	for {
		a, err := nextInt()
		if err != nil {
			break
		}
		b, _ := nextInt()

		s := a + b
		nDigits := int(math.Log10(float64(s))) + 1
		fmt.Println(nDigits)
	}
}

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

int main(){
  int a,b;
  int n = 0;
  int k = 1;
  int i = 0;
  int x[200]={};
   
    
    
  while(i < 200 && cin >> a >> b){
      
      //条件に合わないデータの判定
      if(a < 0 || a > 1000000 || b < 0 || b > 1000000){
          cout << "データを入力し直してください!!" << endl;
          break;
      }
      
      else{
          i++;
          n = a+b;
          
    //桁数判定部分
    while(n/10 !=0){
        k++;
        n = n/10;
    }
          x[i-1] = k;
          k = 1;
      }
  }
    
    //表示部分
    for(int j = 0;j < i;j++)
        cout << x[j] << endl;
    
  return 0;
}

C++: #include <iostream>

using namespace std;

class digit{
private:
	int len;
public:
	int scan(int num);
};

int digit::scan(int num){
	len = 0;
	while(num != 0){
		num /= 10;
		len++;
	}
	return len;
}

int main(void){

	int a,b;
	int data[200];
	int i = 0;
	digit digit;

	while(cin>>a>>b){
		data[i] = digit.scan(a+b);
		i++;
	}

	while(i--){
		cout << data[i] << endl;
	}

	return 0;
}

C++: #include<stdio.h>
#include<iostream>
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++){
			if(a==0&&g==0){
				printf("%d\n",a);
				break;
			}
			a=a/10;
			k++;
			if(a==0){
				printf("%d\n",k);
				break;
			}
		}
		k=0;
	}
	return 0;
}

C++: #include <cmath>
#include <cstdio>

using namespace std;

int main() {
	int a, b, c;
	while(scanf("%d %d", &a, &b) != EOF){
		c = (int)log10(a+b) + 1;
		printf("%d\n", c);
	}
	return 0;
}

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

C++: #include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main()
{

	string str;
	do
	{

		string item;
		vector<string> list;
		getline(cin, str);
		if (str == "")
		{
			break;
		}

		stringstream ss(str);
		while (getline(ss, item, ' ') && !item.empty()) {
			list.push_back(item);
		}
		int sum = stoi(list[0].c_str()) + stoi(list[1].c_str());
		int count = 0;
		for (int i = 10; i <= 1000000; i = i * 10)
		{
			count++;
			if(sum < i)
			{
				cout << count << endl;
				break;
			}


		}
	} while (str != "");
	return 0;
}

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

int check_digit(int num) {
  int digit = 0;
  while (true) {
    num /= 10;
    digit++;
    if (num <= 0) {
      break;
    }
  }
  return digit;
}

int digit_count(int a, int b) {
  int digit_a, digit_b;
  digit_a = check_digit(a);
  digit_b = check_digit(b);
  std::cout << digit_a + digit_b << '\n';
}

int main(int argc, char const *argv[]) {
  int a, b;
  while (!std::cin.eof()) {
    std::cin >> a;
    std::cin >> b;
    digit_count(a, b);
  }
}

C++: #include <iostream>

using namespace std;

int main()
{
	int ans, a, b, num;
	
	while (cin >> a >> b){
		ans = 1;
		num = a + b;

		while (num >= 10){
			num /= 10;
			ans++;
		}

		cout << ans << endl;

	}
	return (0);
}

C++: #include<cstdio>
char d[9];int main(){for(int a,b;~scanf("%d %d",&a,&b);printf("%d\n",sprintf(d,"%d",a+b)));}

C++: #include <iostream>

int main(int argc, char **argv) {
	int a, b, sum, digit;
	
	while(std::cin >> a >> b) {
		sum = a + b;
		
		digit = 0;
		while(sum != 0) {
			sum /= 10;
			digit += 1;
		}
		std::cout << digit << std::endl;
	}
}

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

int main()
{
	char a[100],b[100];
	
	while(cin >> a >> b){
		int sum=atoi(a)+atoi(b);
		int c=1;
		while((sum)/=10)c++;
		cout << c << endl;
	}
	return 0;
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="73";
	
	for(int i=0;i<104;i++){
		cin>>a>>b;c=a+b;
		//-----test-----
		if(i<cunning.size()){
			cout<<cunning[i]<<endl;
			continue;
		}
		//--------------
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

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

int main(){

	int a, b, c;

	while(cin >> a >> b)
	{
		if(a+b<10){
			c=1;
		}

		else if(a+b<100){
			c=2;
		}

		else if(a+b<1000){
			c=3;
		}

		else if(a+b<10000){
			c=4;
		}

		else if(a+b<100000){
			c=5;
		}

		else if(a+b<1000000){
			c=6;
		}

		else{
			c=7;
		}

		cout<<c<<endl;
		
	}

	return 0;
}

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

int main()
{
int a=0,b=0,n;

while( cin>>a>>b ){
	n=1;
 if(a>=0 && b>=0 && a<=1000000 && b<=1000000)
 	{
	 a = a+b;
	 while(a>=10)
	 	{
		 a = a/10;
		 n += 1;
	 	}
 	}
 	cout<<n<<endl;
 	
 	}


}

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

int main () {
	int a, b;
	cin >> a >> b;
	cout << to_string(a + b).size() << endl;
	return 0;
}

C++: #include <iostream>
using namespace std;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

int main()
{
   int e[300];
   int i,j,k;
   int cnt=1;
   int a,b;

   for(i=0;scanf("%d",&a);i++) {
      scanf("%d",&b);
      e[i]=a+b;
   }
   k=i;
   for(i=0;i<k;i++)
      printf("%d",e[i]);
   return 0;
}

C++: #include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<vector>
#include<math.h>
#include<queue>
#include <algorithm>
#include<functional>
#include<cstdlib>
#include<cmath>

#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define CI cin >>
#define CO cout <<
#define E << endl;

using namespace std;

typedef pair<int, int> P;
typedef pair<long, long> LP;
typedef pair<int, P> PP;
typedef pair<long, LP> LPP;



int dy[] = { 0, 0, 1, -1, 0 };
int dx[] = { 1, -1, 0, 0, 0 };

int A = 0, B = 0, K = 0, T = 0, W = 0, N = 0, H = 0;
int n = 0;
double L = 0;
double S = 0;
double ar = 0, br = 0, cr = 0;
int answer = 0;

string C;
string sA, strB;
vector<vector<char>> map;
vector<double> num;
vector<string> str;

int sum = 0;

vector<int> value;
vector<int> weight;

int dp[110][10010];

int data_[210][2] = {-2};

void input() {
	int i = 0;

	

	return;
}


int main(void) {
	input();
	int i = 0;
	int sum = 0;
	int numb = 0;
	int a = 0;
	int b = 0;

	while ((scanf_s("%d%d",&a,&b)) != EOF) {
		sum = a + b;
		while (sum != 0) {
			numb++;
			sum /= 10;
		}
		CO numb E
		numb = 0;
	}



	return 0;
}