判断良序数 难度:入门

题目描述
一个多位数,经的高位数依次都比低位数字小。则成为良序数,例如,189、145,而132则不是。输入一个整数n,判断其是不是良序数。

输入格式
一行 —个正整数n

输出格式
—行 是良序数输出YES,否则输出NO

输入样例 #1
10
输出样例 #1
NO
输入样例 #2
123
输出样例 #2
YES
数据范围

img

分解出每一位,比较大小

#include <stdio.h>
int main()
{
    int n,k = 10;
    scanf("%d",&n);
    while(n>0)
    {
        if(n%10 < k)
            k = n%10;
        else
            break;
        n/=10;
    }
    if(n==0)
        printf("YES");
    else
        printf("NO");
}

循环相除得到余数,判断是否是递减,如果是递减就是良数

运行结果:

img

img

代码:

#include <iostream>
using namespace std;
int main()
{
    int a[100];
    int i=0, n = 0;
    int j;
    cin >> n;
    while (n)
    {
        a[i] = n % 10;
        n /= 10;
        i++;
    }
    //判断是否是递减(因为低位在数组的前面)
    for (j = 0; j < i - 1; j++)
    {
        if (a[j] > a[j + 1])
            continue;
        else
        {
            cout << "NO";
            return 0;
        }
    }
    cout << "YES";
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632