《程序设计语言综合设计》第二周上机练习——4 美丽数列

 1 #include<math.h>
 2 #include<iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,s=0,i,j,k,a[300000];
 7     cin>>n;
 8     for(i=0;i<n;i++) cin>>a[i];
 9     for(i=0;i<n;i++)
10     {
11         k=(n-1+abs(n-1-2*i))/2;
12         if(a[i]<k) continue;
13         for(j=0;j<i;j++)
14         if(a[j]<j) break;
15         if(j!=i) continue;
16         for(j=n-1;j>i;j--)
17         if(a[j]<n-j-1) break;
18         if(j!=i) continue;
19         break;
20     }
21     if(i<n) cout<<"Yes"<<endl;
22     else cout<<"No"<<endl;
23 }

简化后的代码

 1 #include<iostream>
 2 using namespace std;
 3 int n,a[100000],i;
 4 int main()
 5 {
 6     cin>>n;
 7     for(i=0;i<n;i++) cin>>a[i];
 8     for(i=0;i<=(n-1)/2;i++)
 9     if(a[i]<i||a[n-i-1]<i) break;
10     if(i==(n+1)/2) cout<<"Yes";
11     else cout<<"No";
12     return 0;
13 }

 

posted @ 2020-03-03 14:04  Miaohengming  阅读(114)  评论(0编辑  收藏  举报