| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4252 人关注过本帖
标题:[求助]求数字对应的字母的程序
只看楼主 加入收藏
无水之冰
Rank: 2
等 级:论坛游民
帖 子:54
专家分:41
注 册:2007-6-5
结帖率:100%
收藏
 问题点数:0 回复次数:5 
[求助]求数字对应的字母的程序
假设a=1,b=2,c=4,d=8,e=16,以此类推26个字母都有一个对应的数!
如果选其中的4个字相加=480,有什么方法找出那4个字母呢?

我想的是用数组做,
int a[25], i;
for(i=0; i<=25; i++)
  a[i]=pow(2,i);
但是在把a[i]转成对应的字母时不会了,大家帮忙看看,谢谢了
搜索更多相关主题的帖子: 字母 
2008-12-11 00:45
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
可以另立一个字符数组,把26个字母存入数组中。

或者直接在输出的时候用  printf("%c",i+'0'); 的形式。
2008-12-11 02:22
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

long Log2(long arry[] , long n) {
     long  i ;
     for (i = 0 ; i < CHAR_BIT * sizeof(long) ; i++) {
          if ( arry[i] == n)
              break ;
          else
              continue ;
      }
 return  i ;
 
}

int main(void) {
    
    const char * str = "abcdefghijklmnopqrstuvwxyz" ;
    long   pow2[CHAR_BIT * sizeof(long)] ={0,1} ,i , n  ;
    unsigned long   mask = 0x1 << CHAR_BIT * sizeof(long) -1 ;
    scanf("%ld" , &n) ;
   
    if ( n < 0) {
        fprintf(stderr, "integer Overflow") ;
        exit(1) ;
    }
    for(i = 2 ; i < CHAR_BIT * sizeof(long) ; i++)
        pow2[i] = pow2[i-1] * 2 ;   
    while (mask) {
           if (mask & n ) {
               i = Log2(pow2 , mask) ;
               putchar(*str + i - 1 ) ;
              
            }
           
            mask >>= 1 ;
     }
 
  return 0 ;
}

[[it] 本帖最后由 iFreeBSD 于 2008-12-11 11:23 编辑 [/it]]
收到的鲜花
  • lonmaor2008-12-11 11:25 送鲜花  11朵   附言:看名字就是高人
  • 广陵绝唱2008-12-11 18:19 送鲜花  49朵   附言:应该标题变色,大家都来看看这代码。

without further ado, let’s get started
2008-12-11 11:18
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
我的想法是(不会移位的做法):
建立一个字符数组 ch[]="abcd...z";
2^(n-1) < 480 < 2^n,其中n-1可以作为索引值来用于求相应的字母。则2^(n-1)对应的字母是ch[n-1]
用480-2^(n-1)来获得下一个操作数,做递归操作,直到 操作数 == 0。
收到的鲜花
  • 广陵绝唱2008-12-11 18:20 送鲜花  23朵   附言:谢谢您的参与。

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2008-12-11 11:32
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
程序代码:
for (i = 0, mask = 0x1; i < CHAR_BIT * sizeof(long); i++, mask <<= 1 )
{
    if( mask & number )
    {
        putchar('a' + i);
    }
}
收到的鲜花
  • 广陵绝唱2008-12-11 18:20 送鲜花  13朵   附言:谢谢您的参与。

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2008-12-11 12:52
无水之冰
Rank: 2
等 级:论坛游民
帖 子:54
专家分:41
注 册:2007-6-5
收藏
得分:0 
谢谢大家了
学到东西了
2008-12-11 18:16
快速回复:[求助]求数字对应的字母的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014964 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved