首页 > 其他分享 >L1-009 N个数求和

L1-009 N个数求和

时间:2024-03-07 19:00:27浏览次数:23  
标签:return gcd 测试点 ll 个数 long L1 009 lld

MD...提交过了好几次才通过。

第三个测试点: 需要使用long long,要求长整型。干脆就把int全部替换成long long。

第五个测试点: 随便试出来的,我输入了2 1/2 -1/2,发现啥都没打印出来。原来是忽略了结果是0的情况,如果整数部分和分子部分都是0,那么就把这个0打印出来,然后加了这部分,第五个就AC了。

可能还有个问题,如果结果只有整数的话,后面应该不带空格,不然会格式错误。有一次出了两个格式错误,应该是这个问题。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll gcd(ll a,ll b){
	if(!b) return a;
	return gcd(b,a%b);
}
ll lcm(ll a,ll b){
	return a/gcd(a,b)*b;
}
int main(){
	ll a,b,c,d,n;
	ll zsp = 0;
	scanf("%lld",&n);
	scanf("%lld/%lld",&a,&b);
	for(ll i=1;i<n;i++){
	    scanf("%lld/%lld",&c,&d);
	    ll lc=lcm(b,d);
		ll fz=lc/b*a+lc/d*c;//分子和分母 
		ll fm=lc;
		if(fz/fm){
			zsp+=fz/fm;
			fz=fz%fm;
		}
		ll gc =gcd(fz,fm);
		a = fz/gc;
		b = fm/gc;
	}
	if(zsp==0&&a==0){
		cout << 0;
	}
	if(zsp){
		cout << zsp;
		if(a) {
		   cout << " ";
		   cout << a << "/" << b;
		}
	}else{
	    if(a) cout << a << "/" << b;
	}
	return 0;
}

标签:return,gcd,测试点,ll,个数,long,L1,009,lld
From: https://www.cnblogs.com/chengyiyuki/p/18059540

相关文章

  • L1-002 打印沙漏
    很容易发现,当层数是k的时候,这一层的有2k-1个。结合数列求和公式,以及上下对称总的数量为(1+2k-1)k/22-1=2k*k-1所以第一步计算出来多少层,就很好做了,第i层对应的空格数量就是层数-i。代码:#include<bits/stdc++.h>usingnamespacestd;inttot;charc;intmain(){ cin>>......
  • 222. 完全二叉树的节点个数c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/intcountNodes(structTreeNode*root){if(!root)return0;if(!root->left&&!root->......
  • NOI 1.7.01 统计数字字符个数
    总时间限制:1000ms内存限制:65536kB描述输入一行字符,统计出其中数字字符的个数。输入一行字符串,总长度不超过255。输出输出为1行,输出字符串里面数字字符的个数。样例输入PekingUniversityissetupat1898.样例输出4原题链接:http://noi.openjudge.cn/ch0107/01/......
  • P3200 [HNOI2009] 有趣的数列 题解
    P3200[HNOI2009]有趣的数列感性地,我们认为在按照数值从小到大填数时每个时刻所填的奇数位的个数\(x\)不小于所填偶数位的个数\(y\)。我们考虑如何证明这一点。性质1:每一个偶数位上的数都要大于它前面所有的数。这一点应当是显然的。性质2:每一个偶数位上的数都不小于它的下......
  • 第k个数
    1.问题描述一个题目是这样的,先给一行整数数列,求数列从小到大排列之后的第k个数。暴力解法就是先排好序,然后输出第k个数。但是如果给定的数列太大,排序的过程就会浪费很多的时间,我们可以通过快速排序的性质,使其在未完全排好序的过程中就可以找到第k个数。点击查看快速排序......
  • 易基因:ChIP-seq等揭示FoxO1增加SMC4转录和METTL14介导m6A修饰以促进卵巢癌发展 | 肿瘤
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。卵巢癌(Ovariancancer,OC)是影响女性生殖系统的三种常见恶性肿瘤之一。转录因子Forkheadbox蛋白O1(FoxO1),又称forkhead横纹肌肉瘤(rhabdomyosarcoma)转录因子,属于ForkheadboxO(FoxO)转录因子家族,处于肿瘤分子调控网络的中......
  • JAVA基础:数组在计算机中的执行原理 多个变量指向一个数组
    程序都是在计算机中的内存中执行的,java程序编译之后会产生一个class文件,这个class文件是提取到内存中的JVM虚拟机中执行的。java为了便于虚拟机这个java程序,也即这个class文件。将虚拟机这块内存区域进行了划分:方法区,栈,堆,  本地方法栈,程序计数器方法区:放编译后的class文件的......
  • 350. 两个数组的交集 II C
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/intmin(inti,intj){if(i<j)returni;returnj;}int*intersect(int*nums1,intnums1Size,int*nums2,intnums2Size,int*returnSize){inthash1[1001]=......
  • 349. 两个数组的交集C
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*intersection(int*nums1,intnums1Size,int*nums2,intnums2Size,int*returnSize){inthash1[1001]={0};inthash2[1001]={0};int*tem=(int*)malloc(sizeof......
  • 记录指定个数的成语
    #!/usr/bin/envpython#-*-coding:utf-8-*-"""#File:chengyu-001.py#Time:2024/1/1611:55#Author:lrtao2010#version:python3.10.1#Description:记录指定个数的成语"""#导入模块importrequests#下载网页impor......