题目描述
一个多位数,经的高位数依次都比低位数字小。则成为良序数,例如,189、145,而132则不是。输入一个整数n,判断其是不是良序数。
输入格式
一行 —个正整数n
输出格式
—行 是良序数输出YES,否则输出NO
输入样例 #1
10
输出样例 #1
NO
输入样例 #2
123
输出样例 #2
YES
数据范围
分解出每一位,比较大小
#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");
}
循环相除得到余数,判断是否是递减,如果是递减就是良数
运行结果:
代码:
#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;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!