15 谁能出线
核心思想:搜索最大的数字,输出下标。
#include <stdio.h> int main() { int scores[10]; int maxScore,i; maxScore=0; for (i=0;i<10;i++) { scanf("%d",&scores[i]); if (maxScore<scores[i]) maxScore=scores[i]; } for (i=0;i<10;i++) if (scores[i]==maxScore) printf("%d\n",i); return 0; }
16 等值数列段
核心思想:枚举起点,对于每个起点找尽可能远的等值数列,然后与已知最大的比较。
#include <stdio.h> int main() { int i,j,n; int start,end,len; len=0; scanf("%d",&n); int seq[n]; for (i=0;i<n;i++) scanf("%d",&seq[i]); for (i=0;i<n;i++) { for (j=i+1;j<n;j++) if (seq[i]!=seq[j]) break; if (len<j-i) { start=i; end=j-1; len=j-i; } } if (len>1) printf("The longest equal number list is from %d to %d.\n",start,end); else printf("No equal number list.\n"); return 0; }
17 大家一起做游戏
核心思想:模拟题中叙述的过程,使用一个变量不断地轮流地扫描这N的人,使用一个数组记录其是否被踢出,并用另一个变量统计其在每一轮中实际的序号(即此变量只在扫到没被踢出的元素是自增)。
#include <stdio.h> int main() { int i,j,k,n,number; scanf("%d %d",&n,&number); int children[n]; for (i=0;i<n;i++) children[i]=i+1; k=n-1; for (i=1;i<n;i++) { j=0; while (j<number) { k++; k%=n; if (children[k]) j++; } children[k]=0; } for (i=0;i<n;i++) if (children[i]) printf("The left child is NO %d.\n",i+1); return 0; }
Leave a Reply
You must be logged in to post a comment.