数字增加数测试

neb*_*ula 12 c c++ algorithm logic

对于1到9之间的某个数字n,如果它等于n + nn + nnn + ...,则数字称为数字增加.例如,24是数字增加,因为它等于2 + 22(这里n = 2).

实际上,我的一个朋友问我这个问题,我一直在考虑它,但到目前为止找不到确切的解决方案.有人可以帮忙吗?我需要的函数如果是数字增加则返回true,否则返回false.

Suj*_*jan 1

我就是这样做的。退房一次。

int sum = 0, count =0;
bool flag = false;

public bool isDigitIncreasing(int input_number)
{
int  n= get_number_of_digit(input_number); // Gets number of digits
int sum = 0;
    for(int i=0;i<n;i++)
    {
        sum = sum*10+1;
        count = count + sum;
    }

    for(int i=1; i<=9;i++)
    {
        if((input_number)==count*i)
        {
            flag = true;
            break;
        }
        else
        flag = false;
    }
    return flag;

}

    public int get_number_of_digit(int num)
    {

        int size = 0;
        do
        {
            num = num/10;
            size++;
        }while(num>0);
        return size;
    }
Run Code Online (Sandbox Code Playgroud)