找回密码
 欢迎注册
楼主: chyanog

[求助] 写一个函数,输入0打印A,1打印B,...,26打印AA,27打印AB........

[复制链接]
 楼主| 发表于 2011-12-7 23:55:26 | 显示全部楼层
7# wayne

670->YU
671->YV
672->YW
673->YX
674->YY
675->YZ
676->ZA
677->ZB
678->ZC
679->ZD
680->ZE

发现前边的代码有问题
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-8 09:47:29 | 显示全部楼层
11# chyanog
这样理解的话,那你5楼的代码也有问题.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-8 11:08:53 | 显示全部楼层
更贴切的处理是将A~Z对应27进制的1~26,暗含一个空字串对应于0。 gxqcn 发表于 2011-12-7 21:11

这样也不行。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-8 11:32:30 | 显示全部楼层
1000 -> ALM
10000 -> NTQ
100000 -> EQXE
1000000 -> BDWGO
10000000 -> UVXWK
100000000 -> HJUNYW
1000000000 -> CFDGSXM
正确?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-8 13:12:30 | 显示全部楼层
14# 风云剑
按照楼主的代码是:

f[26^2 - 1] =YZ
f[26^2 -] =AZA

f[26^3 - 1] =YYZ
f[26^3-] =AZZA
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-12-8 14:06:52 | 显示全部楼层
14# 风云剑
没错!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-12-8 14:07:55 | 显示全部楼层
12# wayne

的确有问题,开始竟然没发现
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-8 15:47:53 | 显示全部楼层
反函数好像不难

  1. int main()
  2. {
  3.     char    str[16];
  4.     long    x=0, i=0;
  5.     printf("input string:");
  6.     scanf("%s", str);
  7.     do
  8.     {
  9.         x*=26;
  10.         x+=str[i] - 'A';
  11.         i++;
  12.         if(str[i])
  13.         {
  14.             x++;
  15.         }
  16.     }while(str[i]);
  17.    
  18.     printf("%d\n", x);
  19.     return 0;
  20. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-8 15:49:51 | 显示全部楼层
正向函数我一直没写出什么好办法,我的方法很土,就是模拟加法。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-8 16:36:42 | 显示全部楼层
只能从数学上找规律了:
A-Z      ------------>      0----25
AA-ZZ  ------------>      26----26^2
AAA-ZZZ ---------->      26+26^2-1 ----26^3
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-18 16:37 , Processed in 0.045354 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表