大きな整数を扱うために long long int でかいてみました。
zzz.c
c
1#include<stdio.h>
2
3int keta(long long int n) {
4 if (n == 0) {
5 return 1;
6 } else if (n < 0) {
7 return keta(-n);
8 } else {
9 int ans = 0;
10 do {
11 n /= 10;
12 ans++;
13 } while (n > 0);
14 return ans;
15 }
16}
17
18int main(void) {
19 long long int n;
20 scanf("%lld", &n);
21 printf("%d\n", keta(n));
22
23 n = 1;
24 for(int i = 2; i < 22; i++) {
25 n = n * 10 + i % 10;
26 printf("%4d: %lld\n", keta(n), n);
27 }
28 return 0;
29}
30
実行例

18桁ぐらいまで処理出来ます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/20 10:08
退会済みユーザー
2019/04/20 10:49
2019/04/20 23:38