第一题:直角三角形
题目描述
输入一个三角形的3边长度,判断该三角形是否为直角三角形,若是则输出True,若不是则输出False。推荐做法:定义一个函数,接受三个int参数,返回bool,再用主函数调用之。
输入描述
每行输入三个由空格隔开的整数a, b, c,表示三角形的3条边长
1 <= a,b,c<= 10000
输出描述
对于每一行输入,输出True或者False表明是否为直角三角形
样例输入
3 4 5 6 7 8 1 1 1
样例输出
True False False
#include <stdio.h> int main(int argc,const char *argv[]) { int a,b,c,tmp; scanf("%d %d %d",&a,&b,&c); if(a<b) { tmp=a;a=b;b=tmp; } if(a<c) { tmp=a;a=c;c=tmp; } if(a*a==b*b+c*c) printf("True "); else printf("False "); }
第二题:斐波那契数列
题目描述
斐波那契数列f(n)满足以下定义:
f(0) = 1, f(1) = 1, f(n) = f(n-1) + f(n-2) (n >= 2)。
请用递归的方法编写函数,对于给定的n,求出斐波那契数列的第n项f(n)
输入描述
每行输入一个整数n
0 <= n<= 30
输出描述
对于每一行输入,输出斐波那契数列第n项的值f(n)
样例输入
1 10 25
样例输出
1 89 121393
#include <iostream> using namespace std; int f(int n) { if (n==0||n==1) return 1; else return f(n-1)+f(n-2); } int main(int argc,const char *argv[]) { int i,a; cin>>i; a=f(i); cout<<a<<endl; return 0; }
第三题:丑数
题目描述
只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数。请编写一个函数,输入一个整数n,能够判断该整数是否为丑数,如果是,则输出True,否则输出False。
输入描述
每行输入一个正整数n
1 <= n<= 1000000
输出描述
对于每一行输入,输出其是否为丑数,是则输出True,否则输出False
样例输入
4 7 12
样例输出
True False True
#include<iostream> using namespace std; void IsUgly(int num) { if(num==1) cout<<"False"<<endl; else { while(num%2==0) num/=2; while(num%3==0) num/=3; while(num%5==0) num/=5; if(num==1) cout<<"True"<<endl; else cout<<"False"<<endl; } } int main(int argc,const char *argv[]) { int n; cin>>n; IsUgly(n); return 0; }
附加题:斐波那契数列选做题
题目描述
斐波那契数列f(n)满足以下定义:
f(0) = 1, f(1) = 1, f(n) = f(n-1) + f(n-2) (n >= 2)。
本题的数据规模比原先更大
输入描述
每行输入一个整数n
0 <= n<= 80
输出描述
对于每一行输入,输出斐波那契数列第n项的值f(n)
样例输入
44 77
样例输出
1134903170 8944394323791464
#include <iostream> using namespace std; long long int Fibonacci(int n) { long long int result=0; long long int a[2]={1,1}; if(n==0||n==1) return 1; else { for(int i=1;i<n;i++) { result=a[0]+a[1]; a[0]=a[1]; a[1]=result; } } return result; } int main() { int n; cin>>n; cout<<Fibonacci(n)<<endl; return 0; }