递增序列【2012年5月27日】

简介:

题目意思:

给一个整数,把各位数字按顺序排列,能否构成一个单调递增(差值为1)的序列.特别的是,0可以放在1前边和9后边,都算是符合要求。

例如

12354---12345  yes

12305---01235 no

1209---90123  yes

980---890 yes

11232---11223 no

复制代码
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 char res[2][10]={"NO","YES"};
 5 int main()
 6 {
 7     int arr[10],sum,i,j,n,l,min,max,flag;
 8     while (scanf("%d",&n),n)
 9     {
10         l=0;flag=1;
11         memset(arr,0,sizeof(arr));
12         while (n!=0)
13         {
14             arr[n%10]++;
15             n/=10;
16             l++;
17         }
18         if(arr[0]==0)
19         {
20             i=1;
21             while(arr[i]==0)    i++;
22             min=i;max=i+l-1;
23             for (i=min+1;i<=max&&flag;i++)    
24                 if(arr[i]!=1)    flag=0;
25         }
26         else
27         {
28             if(arr[0]==1)
29             {
30                 sum=1;
31                 for (i=1;i<=9;i++)
32                 {
33                     if(arr[i]==1)    sum++;
34                     else    break;
35                 }
36                 for (j=9;j>=1&&i!=10;j--)
37                 {
38                     if(arr[j]==1)    sum++;
39                     else    break;
40                 }
41                 if(sum!=l)    flag=0;
42             }
43             else
44             {
45                 flag=0;
46             }
47         }
48         puts(res[flag]);
49     }
50     return 0;
51 }
复制代码

 


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/05/28/2520831.html,如需转载请自行联系原作者

相关文章
|
2天前
|
算法 测试技术 C++
【动态规划】【C++算法】801. 使序列递增的最小交换次数
【动态规划】【C++算法】801. 使序列递增的最小交换次数
|
2天前
leetcode-674:最长连续递增序列
leetcode-674:最长连续递增序列
27 0
|
9月前
|
人工智能
有序序列中插入一个整数
有序序列中插入一个整数
54 0
|
10月前
|
Cloud Native Go
801. 使序列递增的最小交换次数:动态规划
这是 力扣上的 801. 使序列递增的最小交换次数,难度为 困难。
|
11月前
|
关系型数据库 MySQL 数据库
leetcode 674 最长连续递增序列
leetcode 674 最长连续递增序列
67 0
leetcode 674 最长连续递增序列
leetcode 738 单调递增的数字
leetcode 738 单调递增的数字
36 0
leetcode 738 单调递增的数字
|
算法 Java
最长连续递增序列(LeetCode 674)
最长连续递增序列(LeetCode 674)
42 0
|
测试技术
最长连续递增序列(LeetCode-674)
最长连续递增序列(LeetCode-674)
75 0
最长连续递增序列(LeetCode-674)
AcWing 721. 递增序列
AcWing 721. 递增序列
49 0
AcWing 721. 递增序列