算法竞赛入门经典 第三章与源代码
3-1
#include<stdio.h>
#define MAXN 100 + 10
int a[MAXN];
int main(){
int i, x, n = 0;
while(scanf("%d", &x) == 1)
a[n++] = x;
for(i = n-1; i >= 1; i--)
printf("%d ", a[i]);
printf("%d\n", a[0]);
return 0;
}
3-2
#include<stdio.h>
#include<string.h>
#define MAXN 1000 + 10
int a[MAXN];
int main() {
int i, j, n, k, first = 1;
memset(a, 0, sizeof(a));
scanf("%d%d", &n, &k);
for(i = 1; i <= k; i++)
for(j = 1; j <= n; j++)
if(j % i == 0) a[j] = !a[j];
for(i = 1; i <= n; i++)
if(a[i]) { if(first) first = 0; else printf(" "); printf("%d", i); }
printf("\