杭电2009年复试笔试

1.最大公约数

辗转相除法求GCD

  1. 如果 b = 0,计算结束,a 就是最大公约数;
  2. 否则,计算 a 除以 b 的余数,让 a 等于 b,而 b 等于 那个余数;
  3. 回到第一步;
#include <cstdio>
int main(){
	int a, b;
	int t;
	scanf("%d%d", &a, &b);
	while(b != 0){
		t = a % b;
		a = b;
		b = t;
	}
	printf("GCD:%d\n", a);
	return 0;
}

2.水仙花数 浙大C习题4-6 水仙花数

思路:

录入该三位数之后,分别取 百位数、十位数、个位数,然后判断。

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int n;
    scanf("%d", &n);
    int bai = n / 100;
    int shi = n % 100 / 10;
    int ge = n % 10;
    if(n == bai*bai*bai + shi*shi*shi + ge*ge*ge){
        printf("YES");
    }else{
        printf("NO");
    }
    return 0;
}

3.完数 

考查点:质因子分解

浙大C习题册实验4-2-7 找完数 (20 分)

1096 Consecutive Factors (20 分)

1059 Prime Factors (25 分)

 

 

上一篇:java基础习题练习


下一篇:正则表达式