2018大华软件大赛模拟赛第3题 (特殊的整数)

题目:有一种特殊的正整数(int类型),将数分为两侧,每侧至少有一位数,两侧的每个数字相加相等,请写出判断的方法用来检测是否这种数。
   比如:1236,可以拆分为123和6。

输入:输入的第一行指定用例数量T;
   用例的第二行输入正整数;

输出:输出是否为特殊的正整数

bool is_magicnum(int number)

intput:
2
1232145
4543622

output:
1
1

 1 #include <stdio.h>
 2 #include <stdbool.h>
 3 
 4 bool magicnum(int number)
 5 {
 6     int arr[100];
 7     int i = 0;
 8     int len = 0;
 9     while(number != 0)
10     {
11         arr[i] = number % 10;
12         number /= 10;
13         i++;
14     }
15     len =i;
16     int sumleft = 0;
17     int sumright =0;
18     for(i =0; i < len; i++)
19     {
20         sumleft += arr[i]; 
21         for(int j = i+1; j < len ;j++)
22         {
23             sumright += arr[j]; 
24         }
25         if(sumleft == sumright)
26         {
27             return true;
28         }
29         sumright = 0;
30     }
31     return false;
32 }
33 
34 int main() 
35 {
36     int n;
37     int m;
38     bool flag = false;
39     scanf("%d",&n);
40     for(int i = 0; i < n; i++)
41     {
42         scanf("%d",&m);
43         flag = magicnum(m);
44         if(flag == true)
45         {
46             printf("1
");
47         }
48         else
49             printf("0
");
50     }
51     return 0;
52 }
原文地址:https://www.cnblogs.com/leezheng/p/8971984.html