现在的位置: 首页 > 基础课程 > 正文

5月23/24日 迭代:猴子吃桃、数字的分解

2011年05月24日 基础课程 ⁄ 共 338字 ⁄ 字号 暂无评论

迭代是简单而又有效的方法

猴子吃桃

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main(int argc, char *argv[])
{
	int n, t;
	scanf("%d", &n);
 
	t = 1;
	while (n>1) {
		t = 2*(t+1);
		n--;
	}
	printf("%d\n", t);
 
	return 0;
}

也可以使用 for 循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main(int argc, char *argv[])
{
	int i, n, t;
 
	scanf("%d", &n);
 
	for ( t=1, i=1; i<n; i++) 
		t = (t+1)*2;	
 
 	printf("%d\n", t);
	return 0;
}

数字的分解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#define MAXN 5
int main(int argc, char *argv[])
{
    int n, i, count=0;
    int a[MAXN];
    scanf("%d", &n);
 
    while (n>0) {
        a[count] = n % 10;
        n = n / 10;
        count++;
    }
    printf("%d\n", count);
    for (i=count-1; i>0; i--)
    	printf("%d ", a[i]);
   	printf("%d\n", a[0]);
   	for (i=0; i<count; i++)
   		printf("%d", a[i]);
    printf("\n");
    return 0;
}

判断三位对称素数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <math.h>
 
int is_prime(int n) 
{
	int i, t;
 
	if (n==1) return 0;
	t = sqrt(n);
	for (i=2; i<=t; i++) {
		if (n%i == 0) return 0;
	}
	return 1;
}
 
int main(int argc, char *argv[])
{
	int i, n, a, b;
 
	while (scanf("%d", &n)==1) {
		a = n /100;
		b = n % 10;
		if (a>0 && a<=9 && (a==b) && is_prime(n)) 
			printf("Yes\n");
		else
			printf("No\n");
	}
 
	return 0;
}

抱歉!评论已关闭.