杭电2011计算机复试笔试题 3道acm简单题(2011):1.判断是否能组成三角形;2.判断打鱼还是晒网;3.判断丑数。
//1、输入三个正整数A、B、C,判断这三个数能不能构成一个三角形。
//思路:最小的两边之和是否是大于第三边
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[3];
for (int i = 0; i < 3; i++)
{
cin >> a[i];
}
sort(a,a+3);
if (a[0]+a[1]>a[2])
{
cout << "这三边能够构成三角形" << endl;
}
else
{
cout << "这三边不能够构成三角形" << endl;
}
return 0;
}
//2、有个人从2003年1月1日开始,三天打鱼两天晒网,请输入月份、日期,问在当年的某一天他是在打鱼还是在晒网。
//思路:只要计算输入的月份和日期距离1.1的天数,并取余5,结果是0~2的是打鱼,3~4是晒网
#include<stdio.h>
int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int m, d;
int sum;
while (~scanf("%d%d",&m,&d))
{
sum = 0;
for (int i = 1; i < m; i++)
{
sum += month[i];
}
//求某天和1.1间隔天数
sum = sum + d - 1;
if (sum%5 < 3)
{
printf("打鱼\n");
}
else
{
printf("晒网\n");
}
}
return 0;
}
//3.丑数是这样定义的:如果一个正整数的素因子只包含 2、3、5、7四种,则它被称为丑数。以下数列 1, 2, 3,4, 5,6,7,8,9, 10,12,14,15,16,18, 20, 21,24,25, 27.......... 就显示了前20个丑数。给出一个正整数N,判断这个数是否为丑数。
//思路:看所给的数是否能够循环除以它的素因子直到为1
#include<stdio.h>
int main()
{
int n;
while (~scanf("%d",&n))
{
while (n % 7 == 0)
n /= 7;
while (n % 5 == 0)
n /= 5;
while (n % 3 == 0)
n /= 3;
while (n % 2 == 0)
n /= 2;
if (n==1)
{
printf("此数是丑数\n");
}
else
{
printf("此数不是丑数\n");
}
}
return 0;
}
参考博客:http://blog.csdn.net/hackbuteer1/article/details/6667026