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

Posted leezheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018大华软件大赛模拟赛第2题 (特殊的整数)相关的知识,希望对你有一定的参考价值。

题目:有一种特殊的正整数(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\n");
47         }
48         else
49             printf("0\n");
50     }
51     return 0;
52 }

 

以上是关于2018大华软件大赛模拟赛第2题 (特殊的整数)的主要内容,如果未能解决你的问题,请参考以下文章

2018大华软件大赛模拟赛第1题 (node_buffer定义了一个用于存储int型数据的缓冲器,请实现其声明的所有成员方法)

2018大华软件大赛 初赛

[2018大华软件创新挑战赛]模拟赛第四题

第十二届蓝桥杯大赛软件赛省赛第二场C++B组

[2018大华软件创新挑战赛] 初赛1~10题(更新中)

2020 第十一届蓝桥杯大赛软件赛决赛,国赛,C/C++大学B组题解