ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

团体程序设计天梯赛-练习集(四)

2019-12-25 20:03:53  阅读:341  来源: 互联网

标签:int ll 练习 sum2 sum1 long 天梯 程序设计 include


L1-009 N个数求和 (20分)

https://pintia.cn/problem-sets/994805046380707840/problems/994805133597065216

第一次得17分,少考虑分子为负情况

if(sum2<0)
	{
		sum2*=-1;
		cout<<"-";
	}
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b)
{
	return b==0?a:gcd(b,a%b);
}
int main()
{
	int n;
	int i,j,k;
	ll a[101],b[101];
	ll c,d,sum1=1,sum2=0;
	cin>>n;
	for(i=0;i<n;i++){
	 scanf("%lld/%lld",&c,&d);
	 a[i]=c/gcd(c,d),b[i]=d/gcd(c,d);
	 sum1*=b[i];
    }
    if(n==1&&a[0]==0) return 0;
    for(i=0;i<n;i++)
    {
    	for(j=0;j<n;j++)
    	{
    		if(i!=j) a[i]*=b[j];
		}
		sum2+=a[i];
	}
	if(sum2==0) {
		cout<<0<<endl;
		return 0;
	}
	c=sum1,d=sum2;
	sum1=c/gcd(c,d);  //分母 
	sum2=d/gcd(c,d);  //分子
	if(sum2<0)
	{
		sum2*=-1;
		cout<<"-";
	}
	if(sum2>=sum1)
	{
		if(sum2%sum1==0) cout<<sum2/sum1<<endl;
		else cout<<sum2/sum1<<" "<<sum2%sum1<<"/"<<sum1<<endl; 
	 }
	 else cout<<sum2<<"/"<<sum1<<endl;
	 return 0; 
}

  

标签:int,ll,练习,sum2,sum1,long,天梯,程序设计,include
来源: https://www.cnblogs.com/jianqiao123/p/12098587.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有