题目一:
输入三个正整数A、B、C。判断这三个数能不能构成一个三角形。
思路:
根据三角形两边之和一定大于第三边这条定理来进行判断。
1、进行sort排序,然后把两条最短的边取出来
2、如果两条最短的边之和大于第三条边,那么就说明该图形一定满足两边之和大于第三边这个定理。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int main(){
int a[3];
cin>>a[0]>>a[1]>>a[2];
sort(a,a+3);
if(a[0]+a[1]>a[2])//两条最小的边之和大于第三条边,保证了任意两条边之和大于第三边
cout<<"It is a triangle\n"<<endl;
else
cout<<"It is not a triangle\n"<<endl;
return 0;
}
题目二:
有个人从2003年1月1日开始,三天打鱼两天晒网,请输入月份、日期,问在当年的某一天他是在打鱼还是在晒网。
思路:
对于有关日期处理的问题,一般都会涉及到对瑞年的判断,但是此题没有。我们用这个宏定义来帮助判断瑞年 #define ISYEAR(x) x%100!=0&&x%4==0||x%400==0 ?1:0
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
int d,m;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
cin>>m>>d;
int sum=0;
for(int i=1;i<m;i++)
sum+=month[i];//计算某月之前的天数
sum+=d-1;//计算距离某月一号的天数
if(sum%5<=2)
cout<<"打鱼"<<endl;
else
cout<<"晒网"<<endl;
return 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,判断这个数是否为丑数。
思路:
1、定义一个模块儿,该模块儿对数据进行2,3,5,7取余,然后除以当前的数。
2、判断下上面的步骤得到的结果是否是1,是的话就返回true,否则返回false;
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
bool isugly(int num){
while(num%7==0)
num/=7;
while(num%5==0)
num/=5;
while(num%3==0)
num/=3;
while(num%2==0)
num/=2;
if(num==1)
return true;
return false;
}
int main(){
int num;
while(cin>>num){
if(isugly(num))
cout<<"是丑数"<<endl;
else
cout<<"不是丑数"<<endl;
}
return 0;
}