N个数求和(PTA)
这题多输出了一个空格,卡了半天。。。
leetcode刷多了,后遗症
这题可以用scanf("%lld/%lld"),直接读入,不过我用了stoll,也就是stoi,string to int ,把string转int
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6+10;
void getNum(long long& s,long long& f,string num) {
long long i=0;
for (auto c:num) {
if (c=='/') {
break;
}
i++;
}
string pre=num.substr(0,i);
string suf=num.substr(i+1);
s=stoll(pre);
f=stoll(suf);
// cout<<s<<endl<<f<<endl;
}
long long gcd(long long a,long long b) {
return a%b==0?b:gcd(b,a%b);
}
void toEasy(long long& s,long long& f) {
long long g=abs(gcd(s,f));
s/=g;
f/=g;
}
int main() {
// freopen("in.txt","r",stdin);
long long n;
cin>>n;
cin.get();
string line;
getline(cin,line);
stringstream ss(line);
string num;
long long s1=0,f1=1,s2,f2;
while (ss>>num) {
getNum(s2,f2,num);
s1*=f2;
s2*=f1;
s1+=s2;
f1*=f2;
toEasy(s1,f1);
}
toEasy(s1,f1);
long long pre=s1/f1;
s1%=f1;
if (pre) {
cout<<pre;
}
if (pre&&s1) {
cout<<" ";
}
//¶àÁËÒ»¸ö¿Õ¸ñ¾Í»á´í
if (pre==0&&s1<0) {
cout<<"-";
}
if (s1) {
printf("%d/%d",abs(s1),f1);
}
if (pre==0&&s1==0) {
printf("0");
}
printf("\n");
return 0;
}
/*
1
1/2 1/2 1/2 1/2
3
-1/2 -1/2 -1/2
*/
N个数求和(PTA)的更多相关文章
- 暴力+辗转相除法——N个数求和
题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) https://pintia.cn/problem-sets/994805046380707840/problems ...
- 团体程序设计天梯赛-练习集L1-009. *N个数求和
L1-009. N个数求和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题的要求很简单,就是求N个数字的和.麻烦的是,这些 ...
- #020PAT 没整明白的题L1-009 N个数求和 (20 分)
后面的测试点过不去,两个错误一个超时. 目前未解决 L1-009 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和 ...
- Java:多个数求和
设计思想: 先定义int n,定义输入数的个数,输入一个新建的动态数组,输入数字存入动态数组中,函数转换并求和,最后输出. 程序流程图: 源程序代码: package com; import java ...
- 题目--统计一行文本的单词个数(PTA预习题)
PTA预习题——统计一行文本的单词个数 7-1 统计一行文本的单词个数 (15 分) 本题目要求编写程序统计一行字符中单词的个数.所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以 ...
- 天梯赛 L1-009 N个数求和 (模拟)
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数"分子/分母"的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(<=1 ...
- c++---天梯赛---N个数求和
★题目: ★难点:要求只能以有理数和分数去输出结果. ★分析:可以对输入的数据进行通分处理,随后把结果按格式输出. ★代码: #include<iostream> #include< ...
- 约数个数求和+线性筛约数——bzoj3994
这题首先要会线性筛约数个数,并求出前缀和 bool vis[maxn]; int mm,mu[maxn],prime[maxn],num[maxn],sum[maxn],d[maxn],sum1[ma ...
- L1-009. N个数求和
https://www.patest.cn/contests/gplt/L1-009 原来写的找了好久还是有一个测试点没过, 虽说是道水题,但是今天一遍就过了还是挺高兴的. 送你机组数据 52/5 4 ...
随机推荐
- 前端框架-Vue 入门
一.介绍 1.Vue.js 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架. Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合. ...
- 【Python】字符串的格式化
一一对应 符号要用英文半角形式
- 【Python】字符串处理函数
- Weighted Visibility Graph With Complex Network Features in the Detection of Epilepsy
Their data five data set, 100 single channel of EEG signals, each channel EEG has 4097 data point. t ...
- DTU DeepLearning: exercise 7
torch activation functions: sigmoid, relu, tanh, softplus. https://morvanzhou.github.io/tutorials/ma ...
- Python :元组,不可修改的序列
- c数据结构 -- 线性表之 复杂的链式存储结构
复杂的链式存储结构 循环链表 定义:是一种头尾相接的链表(即表中最后一个结点的指针域指向头结点,整个链表形成一个环) 优点:从表中任一节点出发均可找到表中其他结点 注意:涉及遍历操作时,终止条件是判断 ...
- 使用 Razor 表达式
https://blog.csdn.net/github_37410569/article/details/54986136 https://blog.csdn.net/qq_21419015/art ...
- Scale9Sprite不要在初始化的时候setCapInsets
let scale9Sprite = new ccui.Scale9Sprite(filePath);scale9Sprite.setCapInsets(cc.rect(x,y,w,h)); 而非 l ...
- 云原生学习笔记(3)——Kubernetes基本概念
学习地址:https://developer.aliyun.com/lesson_1651_13078?spm=5176.270689.1397405.6.716ef5f8Q9z1z3#_13078 ...