📜  门| GATE-CS-2005 |第 60 题(1)

📅  最后修改于: 2023-12-03 14:58:26.498000             🧑  作者: Mango

门| GATE-CS-2005 |第 60 题

本题来自于GATE计算机科学考试(GATE-CS-2005),需要求出一个函数的输出结果。

问题描述

现有一个Python函数:

def f(m, n):
  s = ""
  while (m):
    s = s + str(m % n) 
    m //= n
  return s[::-1]

其中,m和n都是正整数。请问,当执行 print(f(10, 2) + f(15, 3)) 时,程序的输出结果是什么?

解题思路

根据题目描述,我们可以通过手动模拟程序执行的过程,来推导程序的输出结果。

首先,执行 f(10, 2) 时,程序会将 10 转换成 2进制数,即 1010。执行 f(15, 3) 时,程序会将 15 转换成 3进制数,即 120。

然后,将两个字符串拼接在一起,得到:1010120。

最后,程序将结果反转,得到最终的输出结果:021010。

因此,函数 f(m, n) 的输出结果为字符串类型的 m 转换成 n 进制数的结果。

参考代码

以下是完整的代码实现:

def f(m, n):
  s = ""
  while (m):
    s = s + str(m % n) 
    m //= n
  return s[::-1]

print(f(10, 2) + f(15, 3))    # 输出结果为 021010
总结

本题主要考察了求进制转换的能力,需要掌握如何将一个十进制数转换成其他进制的数,以及输出结果的反转操作。在实现解题思路的过程中需要仔细分析程序执行的每个步骤,以便得到正确的答案。