三角形(大数问题)

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)

题目描述

给定三条边,请你判断一下能不能组成一个三角形。

 

输入描述:

输入包含多组数据,每组数据包含三个正整数a、b、c(1≤a, b, c≤10^100)。


 

输出描述:

对应每一组数据,如果它们能组成一个三角形,则输出“Yes”;否则,输出“No”。

 

输入例子:

1 2 3
2 2 2

 

输出例子:

No
Yes

题解:我们很容易想到用三角形的性质去判断,但是坑点在于数据的范围,1到10^100的范围,直接判断肯定用字符串来模拟大数即可

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>

using namespace std;

int main()
{
	char a[1005],b[1005],c[1005];
	while(scanf("%s%s%s",a,b,c)!=EOF)
	{
		long long int s1=0,s2=0,s3=0;
		
		for(int t=0;t<strlen(a)&&t<8;t++)
		{
			s1=s1*10+a[t]-'0';
		}
			for(int t=0;t<strlen(b)&&t<8;t++)
		{
			s2=s2*10+b[t]-'0';
		}
		
			for(int t=0;t<strlen(c)&&t<8;t++)
		{
			s3=s3*10+c[t]-'0';
		}
		
		if(s1+s2>s3&&s1+s3>s2&&s2+s3>s1)
		{
			printf("Yes\n");
		}
		else
		{
			printf("No\n");
		}
	}
}

 

posted @ 2018-12-03 23:26  black_hole6  阅读(236)  评论(0编辑  收藏  举报