正在加载图片...
int a[100], k, x2, X3 if(2*a[x2] a[x3]) [k]=2*a[x2++]+1;x3++; else if(2 a[x2]<3 a[x3]) a[k]=2*a[x2++]+1; esea[k]=3*a[x3+-]+1 for(k=1;k<=100;k++) rinf(%4d", a[k]):++x2 If(x2%10=0) printf("\n") } 另一种实现方案 #include<stdio. h> int mainO int j, m[100], y, z [0] while(j< 100) f(m[z]*3>m[y]*2 m[j]=m[y++]*2+1; if(m[z]*3+1==m[j])z++ else m[j] =m[z++]*3+1 (=0;j<100;j++) printf("%6d″,m[j]) if((j+1)%10==0) printf("n"); return 0: 6.13有一个已按升序排列的数组,现插入一个数 number,要求插入后该数组仍为升序 算法分析:这个问题可以分解为以下四步 66 { int a[100],k,x2,x3; a[1] = 1; x2 = 1; x3 = 1; for(k = 2; k <= 100; k++) if(2 * a[x2] == 3 * a[x3]) { a[k] = 2 * a[x2++]+1; x3++; } else if(2 * a[x2] < 3 * a[x3]) a[k] = 2 * a[x2++]+1; else a[k] = 3 * a[x3++]+1; x2 = 0; for(k = 1; k <= 100; k++) { printf("%4d",a[k]); ++x2; if(x2 % 10==0) printf("\n"); } } 另一种实现方案: #include<stdio.h> int main() { int j,m[100],y,z; m[0] = j = 1; y = z = 0; while(j < 100) { if(m[z] * 3 >= m[y] * 2) { m[j] = m[y++] * 2+1; if(m[z] * 3+1 == m[j]) z++; } else m[j] = m[z++] * 3+1; j++; } for(j = 0; j < 100; j++) { printf("%6d",m[j]); if((j + 1) % 10 == 0) printf("\n"); } return 0; } 6.13 有一个已按升序排列的数组,现插入一个数 number,要求插入后该数组仍为升序。 算法分析:这个问题可以分解为以下四步:
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有