- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定分数 a / b
, 其中a
和 b
是正整数并且a < b
, 选择最大单位分数 1 / x_1
这样 1 / x_1 <= a / b
.然后减去1 / x_1
来自 a / b
, 并对余数重复该过程:选择最大单位分数 1 / x_2
这样 1 / x_2 <= (a / b) - (1 / x_1)
.再次重复,直到没有剩余。此过程将产生一系列单位分数 1 / x_1, 1 / x_2, 1 / x_3, ...
总和为给定分数 a / b
.对于任何输入分数 a / b
,此过程总是终止具有有限数量的不同单位分数。编写一个程序,打印出结果系列中最后一个分数的分母。
5/7 = 1/2 + 1/5 + 1/70
示例输入:
3
4 23
5 7
8 11
输出:
138
70
4070
代码:
我的代码是针对 C++ 语言的
#include <iostream>
#include <fstream>
using namespace std;
int testCase;
double a;
double son;
double mom;
int main()
{
ifstream file("input.txt");
file >> testCase;
while (testCase--)
{
file >> son;
file >> mom;
while (son != 1)
{
a = (int)(mom / son) + 1;
son = (son * a) - mom;
mom = mom * a;
}
cout << mom << endl;
}
file.close();
}
我认为我的算法是正确的,但我的学校评分系统说它超出了运行时间限制。我不知道为什么。
最佳答案
您可能忘记了在每一步将 mom
和 son
除以它们的最大公约数 (GCD)。这可能会让某些示例永远运行或比预期运行更长时间。检查这是否是问题所在。另外,为什么要为 son
和 mom
使用 double
类型?分数的分子和分母应该是整数。如果它们可以是非常大的整数,只需使用 unsigned long int
或 size_t
(c++ 中的同义词)。 double
数据类型没有 size_t
那么多的有效数字。
关于c++ - ACM 国际大学生程序设计大赛亚洲赛区 D Henry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39352780/
如何有效地设计一个C++模块化程序?如何学习? 最佳答案 对于初学者,您可能希望采取“暴力”过程: 1. 在一个文件中写一个简单的main函数。 2. 增加一些功能,先编译再测试。 3.重构(在谷歌中
前言 有人说现在记事类app这么多,市场这么卷,为什么还想做一个笔记类App? 一来,去年小孩刚出生,需要一个可以记录喂奶时间的app,发现市面上没有一款app能够在两步内简单记录一个时间,可能i
我正处于 Web 应用程序的设计阶段,该应用程序允许用户创建工作请求,并且工作人员可以针对这些请求投入时间。该应用程序还将为主管提供报告功能,以获取每日总计、报告,并说明花费的时间、“成本分配”。 我
前言:很多刚刚接触编程的人都不知道怎么下手编写程序,特别是学习了新的知识点,不知道有什么用,那么本文将以简单的存储结构及简单的运算,条件语句,分支语句,循环语句结合,带来一个双人对战版五子棋,这是一
我正在尝试通过 C++ 多线程解决网络流量问题。 给定一个网络(所有节点都由弧连接,每个弧连接2个且只有2个结束节点,一个是输入节点,另一个是输出节点,每个节点可以有多个输入弧和输出弧),每个节点需要
我有一个关于编程和文件的问题。 while(current!=NULL) { if(current->Id_Doctor!='\0') { current=current->next;
下面的‘C’语句执行什么操作? star = star ^ 0b00100100; (A) 切换变星的第 2 位和第 5 位。 (B) 清除变量星的第 2 位和第 5 位以外的所有位。 (C) 设置除
我写了下面的代码: #include int main() { int a, b; printf("Enter values of a and b\n"); scanf(" %d%d "
我正在将 C 代码编程到 PIC 板上。我的问题是如何让我的程序计算按下按钮(RB0)的时间。然后它会显示所花费的时间并将其显示在液晶显示屏上。以毫秒为单位计算。下面是到目前为止我的代码。 /
我是一名优秀的程序员,十分优秀!