我是靠谱客的博主 儒雅乐曲,最近开发中收集的这篇文章主要介绍小X与三角形(c++),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述

小X很喜欢三角形,原因之一是三角形具有稳定性。也就是说,给定三角形的三条边长,它的形状也随之确定了。
现在小X想画一个三条边长都是正整数的三角形,其中两条边的长度分别是a和b,第三条边的长度还没有确定。小X想知道他能画出多少种不同的三角形。

输入

输入数据仅有一行包含两个用空格隔开的正整数,表示a和b。

输出

输出仅一行包含一个正整数,表示其中两条边长分别为a,b的三角形的种类数。

样例输入

2 3

样例输出

3
解释:第三条边的长度可能为2,3,4,共3种。

普通方法:

用循环枚举成立的数(a+b>c,a+c>b,b+c>a)然后累计,最后输出。

(在此省略超时代码)

对不起,时间超限!!!

数学优化:

我们发现,不管数据如何坑,都会满足答案是一个严格递增的序列,所以我们可以枚举左右端点然后相减再加一输出答案。
方法:

左端点为|a-b|+1

右端点为a+b-1

将公式代入程序最后按照上面操作一次,就

评测通过100分!!!

代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	int left,right;
	right=a+b-1;
	left=abs(a-b)+1;
	printf("%dn",right-left+1);
	return 0;
}
是不是非常棒呀?

最后

以上就是儒雅乐曲为你收集整理的小X与三角形(c++)的全部内容,希望文章能够帮你解决小X与三角形(c++)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部