首页 > 试题广场 >

小乐乐与二段数

[编程题]小乐乐与二段数
  • 热度指数:8046 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小乐乐从老师口中听到了二段数这个名词,想更深入的了解二段数。

二段数是这样的正整数:恰好包含两种不同的十进制数字sts不是0,并且s的所有出现均排列在所有的t的前面。例如,44444411是二段数(s4t1),41100000005555556也是。但444411444444都不是二段数。

这时老师问小乐乐:给你一个任意的正整数n,你能求出比n大并且是n的倍数的最小二段数吗?请你帮助小乐乐解答这个问题。


输入描述:
多组输入,每组输入包含一个正整数n (1 ≤ n ≤ 99999)

题目保证测试数据总数不超过500组,当输入n=0时程序结束。


输出描述:
对于每组测试用例,输出正整数n,后面紧跟“: ”,输出答案并换行,即比n大且是n的倍数的最小二段数。
示例1

输入

1
2019
0

输出

1: 10
2019: 9999999993
头像 long_night
发表于 2019-11-10 02:44:35
二段数对于形如xxx这种数,可以由x*111表示,这对表示二段数及判断二段数是否是n的倍数有很大的帮助(详见官方题解)一开始考虑枚举n的倍数,再判断是否是二段数,超时(比如170: 11111111111111110,后面是前面的65,359,477,124,183倍,不超时才怪)后来感觉二段数数目 展开全文
头像 哈尔滨理工大学-李佳奇
发表于 2019-11-08 22:00:03
题解传送门
头像 牛客题解官
发表于 2020-06-04 17:29:31
题目描述小乐乐从老师口中听到了二段数这个名词,想更深入的了解二段数。 二段数是这样的正整数:恰好包含两种不同的十进制数字s和t,s不是0,并且s的所有出现均排列在所有的t的前面。例如,44444411是二段数(s是4,t是1),41、10000000和5555556也是。但4444114和44444 展开全文
头像 谢彬_
发表于 2023-04-05 19:52:09
#include <stdio.h> const int maxn=10010; int a[maxn],b[maxn]; int m,total,s,t,aptotal,apm,aps,apt,k; int n; int ck() { 展开全文
头像 fx_函数
发表于 2024-05-07 22:23:20
#include <stdio.h> int a[9999],b[999]; int m,total,s,t,aptotal,apm,aps,apt,k;//我们让total来存储这个数的位数 这样n就可以用total-m来赋值 int n; //注意这里的n是我们要输入的值 //由 展开全文
头像 谢彬_
发表于 2023-04-05 19:52:30
#include <stdio.h> const int maxn=10010; int a[maxn],b[maxn]; int m,total,s,t,aptotal,apm,aps,apt,k; int n; int ck() { 展开全文

问题信息

上传者:牛客309119号
难度:
57条回答 5873浏览

热门推荐

通过挑战的用户

查看代码
小乐乐与二段数