当前位置:Gxlcms >
数据库问题 >
BestCoder 2nd Anniversary 1001 Oracle
BestCoder 2nd Anniversary 1001 Oracle
时间:2021-07-01 10:21:17
帮助过:2人阅读
#include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <cmath>
5 #include <algorithm>
6 using namespace std;
7 #define LL long long
8 char s[
10000005];
9 int a[
10000005],b[
10000005];
10 int t,p;
11 int main()
12 {
13 scanf(
"%d",&
t);
14 while(t--
)
15 {
16 scanf(
"%s",s);
17 int len=
strlen(s);
18 p=
0;
19 if(len==
1)
//只有一个数字,不符合
20 {
21 puts(
"Uncertain");
continue;
22 }
23 for(
int i=
0;i<len;i++
)
24 {
25 a[i]=s[i]-
‘0‘;
26 if(a[i]!=
0) p++
;
27 }
28 if(p<=
1)
//非零数字不足两个,不符合
29 {
30 puts(
"Uncertain");
continue;
31 }
32 sort(a,a+
len);
33 for(
int i=
0;i<len;i++)
//找到最小的非零数字
34 {
35 if(a[i]!=
0)
36 {
37 p=i;
break;
38 }
39 }
40 int j=
0;
41 for(
int i=
0;i<len;i++
)
42 {
43 if(i==p)
continue;
44 b[j++]=
a[i];
45 }
46 b[
0]+=a[p];
//相加
47 b[j]=
0;
48 for(
int i=
0;i<j;i++)
//高精度进位
49 {
50 if(b[i]<
10)
break;
51 b[i+
1]+=b[i]/
10;
52 b[i]%=
10;
53 }
54 if(b[j]>
0) j++
;
55 for(
int i=j-
1;i>=
0;i--
)
56 printf(
"%d",b[i]);
57 puts(
"");
58 }
59 }
BestCoder 2nd Anniversary 1001 Oracle
标签: