【发布时间】:2011-04-06 13:53:26
【问题描述】:
我需要帮助解决problem N from this earlier competition:
问题 N:数字和
给定 3 个正整数 A、B 和 C, 找出少了多少正整数 大于或等于 A,当表示为 以 B 为底,数字之和为 C。
输入将由一系列 行,每行包含三个整数, A, B 和 C, 2 ≤ B ≤ 100, 1 ≤ A, C ≤ 1,000,000,000。数字 A、B 和 C 以 10 为基数给出并分开 由一个或多个空格组成。输入是 由包含三个的行终止 零。
输出将是数字的数量, 对于每个输入行(必须给出 以 10 为底)。
示例输入
100 10 9
100 10 1
750000 2 2
1000000000 10 40
100000000 100 200
0 0 0
样本输出
10
3
189
45433800
666303
相关规则:
从键盘读取所有输入,即使用
stdin、System.in、cin或等效项。输入将从文件重定向以形成您提交的输入。将所有输出写入屏幕,即使用
stdout、System.out、cout或等效项。不要写信给stderr。不要使用甚至包含任何允许直接操作屏幕的模块,例如conio、Crt或类似的任何东西。程序的输出被重定向到一个文件以供以后检查。使用直接 I/O 意味着此类输出不会被重定向,因此无法检查。这可能意味着正确的程序被拒绝!除非另有说明,否则输入中的所有整数都将适合标准的 32 位计算机字。一行中相邻的整数将由一个或多个空格分隔。
当然,公平地说,在尝试解决此问题之前我应该了解更多信息,但如果有人告诉我它是如何完成的,我将不胜感激。
提前致谢,约翰。
【问题讨论】:
-
我是否真的必须下载整个 PDF 文件才能阅读您可能在此处剪切和粘贴的内容——只是为了看看我是否想帮助您?
-
给定 3 个正整数 A、B 和 C,找出有多少个小于或等于 A 的正整数,当以 B 为基数表示时,有数字之和为 C。输入将由一系列行,每行包含三个整数,A、B 和 C,2 ≤ B ≤ 100,1 ≤ AC ≤ 1,000,000,000。数字 A、B 和 C 以 10 为底数,并由一个或多个空格分隔。输入由包含三个零的行终止。输出将是每个输入行的数字数量(必须以 10 为基数)。
-
规则说输入中的所有整数都适合 32 位,所以上限实际上是 4,294,967,295(假设它是无符号的,因为 A 不能是负值)。
-
问题中说明了A的上限,与C的上限相同。
标签: algorithm