Posted on 2011-09-17 16:41
Uriel 閱讀(173)
評論(0) 編輯 收藏 引用 所屬分類:
考研&保研復試上機題
各種水題
1. 斐波那契數列
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


int main()
{
int cse, a, b, c, n, i;
scanf("%d", &cse);

while(cse--)
{
scanf("%d", &n);
if(n == 1 || n == 2) puts("1");

else
{
a = 1; b = 1;

for(i = 3; i <= n; ++i)
{
c = a + b;
b = a;
a = c;
}
printf("%d\n", c);
}
}
return 0;
}2. 統計字符數
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int cnt[30];
char s[2000];


int main()
{
int cse, i, fg, mx;
scanf("%d", &cse);
getchar();

while(cse--)
{
gets(s);
memset(cnt, 0, sizeof(cnt));

for(i = 0; s[i]; ++i)
{
cnt[s[i] - 'a']++;
}
mx =0;

for(i = 0; i < 26; ++i)
{

if(cnt[i] > mx)
{
mx = cnt[i];
fg = i;
}
}
printf("%c %d\n", fg + 'a', mx);
}
return 0;
}3. 猴子選大王
NC地理解錯題意... 糾結了20min還...
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int n, m, fg[400];


int main()
{
int i, cnt, stp;

while(scanf("%d %d", &n, &m), n | m)
{
memset(fg, 0, sizeof(fg));
cnt = i = 0;

while(cnt < n - 1)
{
stp = 0;

while(stp < m)
{
i++;
if(i >= n) i %= n;
if(fg[i]) continue;
stp++;

if(stp == m)
{
fg[i] = 1;
cnt++;
break;
}
}
}

for(i = 0; i < n; ++i)
{
if(!fg[i]) break;
}
if(i == 0) i += n;
printf("%d\n", i);
}
return 0;
}