从我原来的博客上搬运。原先blog作废。
(伪)水题+1,旨在继续摸清这个blog(囧

题目

就是求N个数字的和。麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式。

题解

对读入,可以使用scanf(“%d/%d”,…);来解决读入问题(scanf很强的!
然后以为自己稳了。。。结果TLE了
问题在哪里呢?在gcd那里,我一开始加上了b与a的大小判断,然而其实不应该这么做!这样做破坏了尾递归(让gcc没法优gao化shi了),极大的减慢了gcd的速度。

后来删掉了if,引出了个WA2333
问题在于负数分数的问题,处理如下,在两个地方加以处理了。
水题想搞事也很容易啊,大意要不得。

代码

#include <bits/stdc++.h>
using namespace std;#define f1(x,y) for(int x=1;x<=y;++x)
#define f0(x,y) for(int x=0;x!=y;++x)
#define bf1(x,y,z) for(int x=y;x>=z;--x)
#define bf0(x,y,z) for(int x=y;x!=z;--x)
typedef long long ll;
typedef unsigned long long ull;int gcd(int a,int b)
{
//    if(b>a) swap(a,b);return (b==0)?a:(gcd(b,a%b));
}
int lcm(int a,int b)
{return a/gcd(a,b)*b;
}
int main()
{int n;scanf("%d",&n);int tota,totb;f1(i,n){int a,b;scanf("%d/%d",&a,&b);if(i==1){tota=a;totb=b;}else{int tmpb=b;tmpb=lcm(b,totb);tota=tota*tmpb/totb+a*tmpb/b;totb=tmpb;}int g=gcd(abs(tota),abs(totb));tota/=g;totb/=g;//cout<<tota<<" "<<totb<<endl;}if(abs(tota)>=abs(totb) || tota==0){printf("%d",tota/totb);if(tota%totb==0)printf("\n");elseprintf(" %d/%d\n",abs(tota)%abs(totb),totb);}else printf("%d/%d\n",tota,totb);//printf("%d/%d\n",tota,totb);return 0;
}

转载于:https://www.cnblogs.com/samhx/p/9652096.html

【题解搬运】PAT_L1-009 N个数求和相关推荐

  1. L1-009. N个数求和

    L1-009. N个数求和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题的要求很简单,就是求N个数字的和.麻烦的是,这些 ...

  2. n个数求和 java_暴力+辗转相除法——N个数求和

    题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) 题目描述 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须 ...

  3. 0066-若干个数求和问题

    题目 若干个数求和问题 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入若干个整数(不会超过 10000 个),输出它们的和 ...

  4. 1081 n个数求和 (多实例测试)

    n个数求和 (多实例测试) 题目描述 求n个整数的和. 输入 输入第一行是一个整数T,表示有T组测试实例: 每组输入包括两行: 第一行一个数n表示接下来会有n个整数: 第二行空格隔开的n个数. 输出 ...

  5. 7-9 N个数求和 (20 分)

    7-9 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤ ...

  6. N个数求和 (20 分)

    N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...

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

    N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格 ...

  8. N个数求和--(PTA天梯赛练习)

    N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...

  9. Java未知个数求和,数字求和

    Java未知个数求和,数字求和 1. 从键盘输入n个数,并完成累加求和输出. 提示: n为输入值.使用Scanner类的nextXXX()方法. 解答: 第一种:n 从键盘输入 import java ...

最新文章

  1. 用HttpWebRequest抓取网页,尝试自动重定向的次数太多”的错误,
  2. 《Linux设备驱动开发详解 A》一一2.3 接口与总线
  3. 【GDOI2014模拟】旅行 题解代码
  4. 《C语言及程序设计》程序填空——字符数组与字符串处理
  5. java需要先安装jdk_谢谢知乎。Java初学者首先下载 JDK 开发环境,然后再下 eclipse 对吗?那 tomcat是什么?还需要安装吗?...
  6. Qt工作笔记-在ListWidget中多线程检索数据
  7. pytorch学习笔记(八):softmax回归的从零开始实现
  8. HDFS的架构和设计要点
  9. 由一个照片,可以看出云是个物体
  10. html做table某一列的合计,Jquery、js计算table列合计
  11. html go语言,Go 语言基础语法
  12. 2022-2028年中国氧化铝陶瓷基板行业竞争现状及投资决策建议报告
  13. 故宫元宵节首开夜场,票务系统HTTPS加密护航
  14. 无忧·企业文档自助配置完成单点登录配置,对接企业原有组织架构
  15. Python 采集87个手绘风格PPT模板
  16. termux安装kali
  17. 微信公众号开发-----接送事件推送之关注/取消关注
  18. (三) u-boot 启动分析_第一阶段
  19. GE可能会出售其工业软件业务的股份
  20. QQ通信原理--转载

热门文章

  1. form表单提交前进行ajax或js验证,校验不通过不提交
  2. python2 安装faiss-gpu 报错 faiss/faiss/python/swigfaiss.i:241: Error: Unable to find ‘faiss/impl/platfo
  3. LeetCode简单题之二叉树中第二小的节点
  4. Deformable 可变形的DETR
  5. MegEngine亚线性显存优化
  6. 加速针对COVID-19的医疗器械开发
  7. 什么样的技术将在后大流行的世界里兴起
  8. 【CV】Pytorch一小时入门教程-代码详解
  9. mysql+3.11.1_【MySql】1.3 使用正则表达式搜索
  10. Could not initialize class org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImplKt