正在加载图片...
#include<stdlib. h #definen 13 id print(void) int pick (int, int) int main (ve inti,pos, index=0;/* index为数组下标*/ pick(i, index) index pos return EXIT SUCCESS int pick(inti, int index)/从当前位置 index开始,找一个合适的空盒 nt count 1 /*对空盒计数*/ do i if( indexⅫN-1) index=0;/*到达数组尾端,下标从头开始*/ if(a[ index]) index++;/*跳过非空的盒子* else( if( count==i) return index;/*找到合适的空盒位置*/ index++; count+;/*对空盒计数,数组下标指向下一个盒子* Iwhile(count<=i) /*控制空盒计数为I*/ void print(void)/*输出*/ printf("the original order of %d cards is: \n,N) printf(%d, ali) printf("b%cn",’) 8.14任取一个十进制整数,将其倒过来后与原数相加,得到一个新的整数后重复以上 步聚,则最终可得到一个回文数。回文数的这一形成规则目前还属于一个猜想,尚未得到数 学上的证明。有些回文数要经历上百个步骤才能获得。请编程验证3 #include<stdlib.h> #define N 13 void print(void); int pick(int,int); int a[N] = {0}; int main(void) { int i,pos,index = 0; /* index 为数组下标 */ a[0] = 1; for(i = 2; i <= N; ++i) { pos = pick(i,index); a[pos] = i; index = pos; } print(); return EXIT_SUCCESS; } int pick(int i, int index) /* 从当前位置 index 开始,找一个合适的空盒 */ { int count = 1; /* 对空盒计数 */ do{ if(index>N-1) index = 0; /* 到达数组尾端,下标从头开始 */ if(a[index]) index++; /* 跳过非空的盒子 */ else{ if(count==i) return index; /* 找到合适的空盒位置 */ index++;count++; /* 对空盒计数,数组下标指向下一个盒子 */ } }while(count<=i); /* 控制空盒计数为 I */ } void print(void) /* 输出 */ { int i; printf("The original order of %d cards is:\n",N); for(i = 0; i < N; i++) printf("%d,",a[i]); printf("\b%c\n",' '); } 8.14 任取一个十进制整数,将其倒过来后与原数相加,得到一个新的整数后重复以上 步聚,则最终可得到一个回文数。回文数的这一形成规则目前还属于一个猜想,尚未得到数 学上的证明。有些回文数要经历上百个步骤才能获得。请编程验证
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有