ps:题是别的地方copy过来的,代码是自己的
第一题:
输入三个正整数A、B、C。判断这三个数能不能构成一个三角形。
/*组成三角形的三条边a,b,c需同时满足条件:
a+b>c
a+c>b
b+c>a
而实际上只要最长边小于其余两边之和即可
*/
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
int a[3];
while(scanf("%d %d %d",&a[0],&a[1],&a[2]) != EOF){
getchar();
sort(a,a+3);
if(a[2] < a[0] + a[1]){
printf("满足\n");
}
else{
printf("不满足\n");
}
}
return 1;
}
第二题:
有个人从2003年1月1日开始,三天打鱼两天晒网,请输入月份、日期,问在当年的某一天他是在打鱼还是在晒网。
//考察日期的处理
//只需输入月份和日期,年份固定在2003
#include<stdio.h>
int main(){
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int mon,day;
while(scanf("%d %d",&mon,&day) != EOF){
getchar();
int pass = 0;
for(int i = 1;i < mon;i++){
pass += days[i - 1];
}
pass += day;
pass = pass%5;
if(pass == 4 || pass == 0){
printf("晒网\n");
}
else{
printf("打渔\n");
}
}
return 1;
}
/*判断任意年份是否为闰年,需要满足以下条件中的任意一个:
1.该年份能被 4 整除同时不能被 100 整除
2.该年份能被400整除
if((year % 4 == 0 && y % 100 != 0) || year % 400 == 0)
*/
第三题:
丑数是这样定义的:如果一个正整数的素因子只包含 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,判断这个数是否为丑数。
#include<stdio.h>
//递归写法
bool parse(int key){
if(key % 2 == 0){
return parse(key/2);
}
if(key % 3 == 0){
return parse(key/3);
}
if(key % 5 == 0){
return parse(key/5);
}
if(key % 7 == 0){
return parse(key/7);
}
if(key == 1){
return true;
}
return false;
}
int main(){
int com;
while(scanf("%d",&com) != EOF){
getchar();
if(parse(com)){
printf("yes\n");
}
else{
printf("no\n");
}
}
return 1;
}
//非递归写法的结构差不多,无非是在parse函数中,尽可能除2,3,5,7,除尽后判断 key == 1