找回密码
 欢迎注册
楼主: 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. printf("%d\n", x);
  18. return 0;
  19. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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-11-23 10:12 , Processed in 0.028727 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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