1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 | #include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
string input;
int counter = 0;
int intcel;
bool check(int a, int b)
{
int buf[input.length()];
int cel[input.length()];
for(int i =0; i<input.length(); i++){
buf[i] = 0;
cel[i] = ((int)input[i])-48;
}
int i = a;
int len = 1;
if (i > 0)
{
for (len = 0; i > 0; len++)
{
i = i / 10;
}
}
int alen = len;
i = b;
len = 1;
if (i > 0)
{
for (len = 0; i > 0; len++) {
i = i / 10;
}
}
int blen = len;
if (alen>blen)len = alen;
int a_aar[len];
int b_aar[len];
for(int i =0; i<len; i++){
a_aar[i] = 0; b_aar[i] = 0;
}
for(int i =len-1; i>=0; i--)
{
a_aar[i] = a%10;
a-=a%10;
a/=10;
b_aar[i] = b%10;
b-=b%10;
b/=10;
}
bool wynik = true;
int mod= 0;
for(int i =0; i<len; i++)
{
if(a_aar[i]+b_aar[i]<10)
buf[i+mod] =a_aar[i]+b_aar[i];
else{
buf[i+mod] = 1;
mod++;
buf[i+mod] = (a_aar[i]+b_aar[i])%10;
if (i+mod>input.length()){
wynik = false;
break;
}
}
}
for(int i = 0; i<input.length(); i++)
if(buf[i]!=cel[i]) wynik = false;
return wynik;
}
int main()
{
cin>>input;
intcel = atoi(input.c_str());
for(int i =0; i<=intcel; i++)
for(int j =0; j<= intcel; j++)
if(check(i,j))
counter++;
cout<<counter;
return 0;
}
|