不降的数字(51Nod-2499)
生活随笔
收集整理的這篇文章主要介紹了
不降的数字(51Nod-2499)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
小b有一個非負整數 N,她想請你找出 ≤N 的最大整數x,滿足x各個位數上的數字是不降的。也就是說,設x的十進制表示為 a1,a2,…,am,則對于任意 1≤i<m,ai≤ai+1。
輸入
輸入一個非負整數N。
0≤N≤10^9
輸出
輸出一個整數,表示答案
輸入樣例
332
輸出樣例
299
思路:從 n 開始枚舉,每次的 i 進行分解數位,滿足不降即可
源程序
#include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<utility> #include<stack> #include<queue> #include<vector> #include<set> #include<map> #define EPS 1e-9 #define PI acos(-1.0) #define INF 0x3f3f3f3f #define LL long long const int MOD = 1E9+7; const int N = 100000+5; const int dx[] = {0,0,-1,1,-1,-1,1,1}; const int dy[] = {-1,1,0,0,-1,1,-1,1}; using namespace std; int a[N]; int main() {int n;scanf("%d",&n);for(int i=n; i>=1; i--) {int cnt=0;int temp=i;bool flag=true;while(temp) {//分解數位a[cnt++]=temp%10;temp/=10;if(cnt>=2 && a[cnt-1]>a[cnt-2]) {//不滿足不降的特性flag=false;break;}}if(flag) {//滿足不降的特性,輸出并終止枚舉printf("%d\n",i);break;}}return 0; }?
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的不降的数字(51Nod-2499)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小朋友(洛谷-P3852)
- 下一篇: 理论基础 —— 索引 —— 倒排索引