有一个5位数,如:00001 数字的增长率为1,00002、00003这样。 当他到99999的时候,就让他变成A0001、A0002、A0003,以此类推

zhou62722 2014-10-15 03:43:19
有一个5位数,如:00001 数字的增长率为1,00002、00003这样。 当他到99999的时候,就让他变成A0001、A0002、A0003,以此类推:ABA99、JZB01、等…… 求次自增算法…… 请知道的朋友教教我,在线等,万分感谢……
...全文
680 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
winnowc 2014-10-23
  • 打赏
  • 举报
回复
挺有趣的规律(按我的理解,也只有可能是这个规律),我就实现了下,自己以后也用用。 代码80行,放这里了:https://code.csdn.net/snippets/493298 一个OddNumber类,用来把int转换成需要的string,你喜欢从1开始,我也就从int的1开始支持。支持的范围是[1, 18769481],那个Count改下也支持转换成其他位数的(不过到7就可能超过int范围了)。 没写反向转换,也懒得写注释了。原理上面@assky124说过。
於黾 2014-10-22
  • 打赏
  • 举报
回复
引用 11 楼 zhou62722 的回复:
我就想做成 00001 一直到99999 然后 A0001 一直到A9999 在到B0001..............ZZZZZ
因为你每个过程进位方式都不一样,所以不要想当然的说什么A0001到A9999然后什么B0001 那我问你,到Z9999之后又该如何进位,是怎么变成ZZZZZ的
  • 打赏
  • 举报
回复
引用 12 楼 qxz_213 的回复:
这果断是神奇的进位,照这个意思等到Z9999+1 => ZA000,这进位先把“万”位进满,完了进千位,我也是醉了~~ 按理说也是 00001-0000Z -00010-000Z0-000ZZ-ZZZZZ呀。
打错一个地方
  • 打赏
  • 举报
回复
这果断是神奇的进位,照这个意思等到Z9999+1 => ZZ000,这进位先把“万”位进满,完了进千位,我也是醉了~~ 按理说也是 00001-0000Z -00010-000Z0-000ZZ-ZZZZZ呀。
zhou62722 2014-10-22
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
不对不对 楼主给出了ABA99,JZB01两组数据,明显不是这么进位的.而且完全看不懂楼主到底想怎么进位
引用 9 楼 Z65443344 的回复:
00001 ... 99999 A0000 A0001 A9999 B0001 ... Z9999 ZA001 ... ZZ001 ... ZZZZZ 这还带从前往后进位的,真神奇 为什么最高位先进位??
引用 8 楼 caozhy 的回复:
分为两部分,前面按照16进制产生,后面按照10进制产生。既然你自找麻烦搞一个奇怪的规律,代码就自己写去吧。
引用 5 楼 feixuyue 的回复:
我弄错了
我就想做成 00001 一直到99999 然后 A0001 一直到A9999 在到B0001..............ZZZZZ
极品老土豆 2014-10-22
  • 打赏
  • 举报
回复

/*博主给出的5位数,
 当到99999变成 A0001
 那最大就是A0001
 还有比99999大的5位数么?
*/
public string custom(int number)
{
  if (number == 99999)
  return "A001"
  else
  {
      return number.ToString().PadLeft(5,'0')
   }
   
}
卧_槽 2014-10-22
  • 打赏
  • 举报
回复
JZB01是怎么进位得到的?
於黾 2014-10-22
  • 打赏
  • 举报
回复
想生成车牌号,你应该这样生成: 首先考虑纯数字(英文字母个数为0),从00000到99999 然后带1位字母的,从0000A到Z9999 然后带2位字母的,从000AA到ZZ999 ... 一直到5位字母的,从AAAAA到ZZZZZ 这样才对
於黾 2014-10-22
  • 打赏
  • 举报
回复
而且难道你没见过中间带字母的车牌吗? 比如00D00之类的,反正我是见过.
於黾 2014-10-22
  • 打赏
  • 举报
回复
引用 15 楼 GoingNaive 的回复:
大家没见过车牌号吗0.0
车牌号根本不是这么生成的好吧? 车牌号跟电话号码一样,每一位都是有意义的 比如移动就是130-139 联通是147什么的 像你这样的生成方式生成的车牌号,也根本跟现实的车牌号对不上. 现实中车牌号只发行到了2位英文,根本没有5位英文的
joyhen 2014-10-22
  • 打赏
  • 举报
回复
我很好奇的,你这说的自增和你描述有些不对: 从99999、A0001...A9999,这个后面应该是B0001吧,所以首位应该到Z,然后次一位再从A~Z,不会有AZxxx这种情况出现的才是
assky124 2014-10-22
  • 打赏
  • 举报
回复
对数据进行模10^y 进行取整和取余。 取整的部分为 26进制数用输出26进制输出,余数就是10进制的,直接输出
assky124 2014-10-22
  • 打赏
  • 举报
回复
数值还是按数值来存,自定义一个转换成字符串的方法 抽象一下成数学公式就是 f(n) = 26^x * 10^y ,其中 x>=0,y>=0,x+y = 5。 情况不多,建个取值范围表好了 x=0,y=5 f(n) [0,10^5) x=1,y=4 f(n) [10^5,26*10^4) 以此类推。 拿到一个数,去查表确定x,y的值
GoingNaive 2014-10-22
  • 打赏
  • 举报
回复
大家没见过车牌号吗0.0
於黾 2014-10-16
  • 打赏
  • 举报
回复
不对不对 楼主给出了ABA99,JZB01两组数据,明显不是这么进位的.而且完全看不懂楼主到底想怎么进位
於黾 2014-10-16
  • 打赏
  • 举报
回复
00001 ... 99999 A0000 A0001 A9999 B0001 ... Z9999 ZA001 ... ZZ001 ... ZZZZZ 这还带从前往后进位的,真神奇 为什么最高位先进位??
threenewbee 2014-10-15
  • 打赏
  • 举报
回复
分为两部分,前面按照16进制产生,后面按照10进制产生。既然你自找麻烦搞一个奇怪的规律,代码就自己写去吧。
我叫小菜菜 2014-10-15
  • 打赏
  • 举报
回复
引用 6 楼 sxldfang 的回复:
是下面的变化规律吗? ... 00009 00010 ... 00099 00100 ... 题目没说清楚,仅万位是36进制,其他各位是十进制;还是各位都是36进制
意思应该是说: 00001 ... 99999 A0000 A0001 A9999 B0001 ... Z9999 ZA001 ... ZZ001 ... ZZZZZ
sxldfang 2014-10-15
  • 打赏
  • 举报
回复
是下面的变化规律吗? ... 00009 00010 ... 00099 00100 ... 题目没说清楚,仅万位是36进制,其他各位是十进制;还是各位都是36进制
feixuyue 2014-10-15
  • 打赏
  • 举报
回复
我弄错了
加载更多回复(4)

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧