首页 > 试题广场 >

不一样的逆序数

[编程题]不一样的逆序数
  • 热度指数:2390 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小团最近对逆序数(将一个数字逐位逆序,例如1234的逆序数为43211100的逆序数为11)特别感兴趣,但是又觉得普通的逆序数问题有点太乏味了。

于是他想出了一个新的定义:如果一个数的4倍恰好是它的逆序数,那么称这两个数是新定义下的逆序对。

接下来给定一正整数n,问:不超过n的正整数中有多少对新定义下的逆序对?


输入描述:

单组输入。

输入一个正整数n,n<1e7。



输出描述:

第一行输出在不超过n的前提下有多少对逆序数,接下来每一行输出一对逆序数,以空格分隔。如果有多组逆序数,按照第一个数升序输出。

如果没有一对逆序数则直接输出0即可。

示例1

输入

10000

输出

1
2178 8712
n = str(input())

x = 0
x4 = 0
arr = []

for i in range(int(n)):
    re = int(str(i)[::-1])
    if i*4 == re and i != 0:
        x = (str(i) + " " + str(re))
        arr.append(x)
    else:
        i += 1

ans = 0
for x in arr:
    ans = ans+1
    print(ans)
    print(arr[ans-1])

发表于 2023-03-23 18:47:04 回复(0)
n = int(input())
ans = []
for num1 in range(2178, int(n/4)+1):
    num2 = int(str(num1)[::-1])
    if num1*4 == num2:
        ans.append(num1)
print(len(ans))
for i in ans:
    print(i, i*4)
一道奇怪的题。。。。
发表于 2021-09-29 22:08:53 回复(0)