一个正整数分为两侧,两侧的每个数字相加相等

如题

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

#include <stdio.h>
#include <stdbool.h>

bool is_magicnum(int number)
{
    int n = 0;
    int arr[11];         
    int num1=0, num2=0;
    while(number>0)
    {
        arr[n++] = number % 10;
        number = number/10;
    }
    
    for(int i=0; i<n; i++)
    {
        num1 += arr[i];
        for(int j=n-1; j>i; j--)
        {
            num2 +=arr[j];
        }
        if(num1 == num2)
            return true;
        num2 = 0;
    }
    return false;
}

int main()
{
    int num;
    printf("请输入一个正整数:");
    scanf("%d",&num);

    if(is_magicnum(num))
      puts("true");
    else
      puts("false");
}

猜你喜欢

转载自www.cnblogs.com/xiehuan-blog/p/9022321.html