中级光能
题目链接: 酷町堂:7772
7772 奇怪的阶乘
经验值:800 时间限制:1000毫秒 内存限制:128MB
题目描述 De**ion
现在这里有n组数字,每组数字中有三个数字a,b,c。对于这三个数字,你需要判断作为边长是否能够组成一个三角形。
如果能够组成一个三角形,那么需要输出(a+b-c)和(a+c-b)以及(b+c-a) 的阶乘。
否则,输出数字0。
输入描述 Input De**ion
n+1行
第一行,一个正整数n,表示有n组数字(1<=n<=20)
接下来n行,每行三个正整数。
输出描述 Output De**ion
n行。
每行:如果三个数字能够组成三角形,则输出三个阶乘的结果,以空格隔开。否则,输出一个数字0。
样例输入 Sample Input
3 3 4 5 1 8 18 1 5 9
样例输出 Sample Output
2 24 720 0 0
0分代码
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int a,b,c;
for(int i=1;i<=n;i++){
cin>>a>>b>>c;
}
for(int i=1;i<=n;i++){
if(a+b>=c&&a+c>=b&&c+b>=c){
cout<<i*(a+b-c)<<" "<<i*(a+c-b)<<" "<<i*(b+c-a)<<"\n";
}else{
cout<<0<<"\n";
}
}
return 0;
}
新手光能
首先定义long long n,a,b,c,s=1,s2=1,s3=1;
然后
数入>>n;
for(int i=1;i<=n;i++){
数入>>a>>b>>c;
如果((a+b)>c&&(b+c)>a&&(a+c)>b){
for循环 for(int j=1;j<=a+b-c;j++){
s*=j;
}
for(int k=1;k<=a+c-b;k++){
s2*=k;
}
for(int l=1;l<=b+c-a;l++){
s3*=l;
}
然后输出<<s<<’ ‘<<s2<<’ '<<s3<<endl;
s=1;
s2=1;
s3=1;
}所以else{
输出<<0<<endl;
望采纳,谢谢