我有问题,我需要最多 10000 个测试用例作为输入,并且最多有 5000 个数字,并且必须反转数字。
如果假设我只给出 3 个测试用例和每个测试用例的随机数字,如下所示,
n = 3,
1] 12 43 => these are the digits => o/P 55
2] 90 235 => o/P is 09 + 532 = 541
3] 23 98899 3454 2323 => o/P is 32 + 99889 + 4543 + 3232 = 107696
我需要将这些数字作为输入。我可以将它们放入整数数组中吗?存储数字后,我必须反转数字并添加它们。 1] 12 43 可以反转为 21 34 并相加为 21 + 34 = 55。输出为 55
我们可以使用以下公式反转一位数字,
num = 12345
rev_num = 0
while(num > 0) {
rev_num = (rev_num * 10) + (num%10)
num = num/10
}
但不知道存储它的正确数据结构,以便反转单行上输入的多个数字并添加反转的数据。 整数 n; int (*p)[n]; 我们不能根据 n 的值动态声明数组吗?如何解决这个问题。
最佳答案
- 使用
fgets()
读取输入。 - 使用
strtok()
将输入分隔为字符串,并以空格作为分隔符。 - 对每个标记使用
strrev()
反转字符串。 - 然后使用
atoi()
将标记转换为整数。 - 获得整数后,执行加法。
关于c - C中的多位数字反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27309905/