You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:寻找HackerRank中输入输出数据的转换算法模式

嘿,你之前的反转相加思路其实在不少案例上都命中了,但20的情况确实卡壳了——我仔细对比了输入输出的对应关系,发现可以按数字的类型拆分出更完整的规律:

完整转换规则推导

我们先把输入输出一一对应列出来,方便观察:

输入输出
11
22
33
44
55
1011
1122
1566
20111

1. 一位数输入(1-5)

这类输入的输出和输入完全一致,规则很直接:输出等于原数。

2. 两位数输入

我们可以把两位数再分成两类处理:

2.1 非10倍数的两位数(11、15)

计算输入数字的各位数字之和 s,输出是由两个s组成的两位数:

  • 11的各位和:1+1=2 → 输出22(两个2)
  • 15的各位和:1+5=6 → 输出66(两个6)

其实这和你之前的反转相加思路结果一致:(10a+b)+(10b+a)=11(a+b)=11s,而11*s刚好就是两个s组成的两位数,比如11*2=22、11*6=66。

2.2 10倍数的两位数(10、20)

这类数的个位为0,取十位数字d,输出是由d+1个1组成的整数:

  • 10的十位数字是1 → 1+1=2个1 → 输出11
  • 20的十位数字是2 → 2+1=3个1 → 输出111
总结算法步骤

对于每个输入数字num:

  • 如果num是一位数(1≤num≤9),输出num;
  • 如果num是两位数:
    • 若num % 10 == 0(即10的倍数):
      • 取十位数字d = num // 10
      • 输出由d+1个'1'拼接成的整数
    • 否则:
      • 计算各位和s = (num//10) + (num%10)
      • 输出11 * s(或直接拼接两个s成两位数)

这个规则完全匹配所有给定的输入输出,应该就是题目要求的转换模式了。

内容的提问来源于stack exchange,提问作者Rahadian Permana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:35:47