填空题 [说明] 试从含有n个int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。 [C++ 程序] #include<stdio.h> #define N 100 int b[]={9,8,5,4,3,2,7,6,8,7,5,3,4,5,9,1}; int a [N]; #define n sizeofb/sizeofb[0] void main ( ) { kit k,i,j; {{U}} (1) {{/U}} {{U}} (2) {{/U}} for (i=1;i<n; i++ ) { for ( j=k;{{U}} (3) {{/U}}; j--); {{U}} (4) {{/U}}; /*长为 j+1 的子序列的终元素存储在 a[j+1]*/ if ({{U}} (5) {{/U}} k++; /*最长不减子序列长 k 增1*/ } printf ( "K = %d/n ",k ); }
  • 1、
【正确答案】 1、(1)a[1] =b[0] (2) k=1    
【答案解析】(3) j>1&&a[j]>b[i] (4)a[j+1]=b[i] (5) j==k