| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2465 人关注过本帖, 2 人收藏
标题:求一个题目的答案,本人是菜鸟,想了很久没想出!
只看楼主 加入收藏
sumb
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-9-22
收藏
得分:0 
回复 8楼 猪4321
是的
2009-10-31 08:31
sumb
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-9-22
收藏
得分:0 
回复 6楼 pgy
不是26进制。
2009-10-31 08:32
sumb
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-9-22
收藏
得分:0 
大家一起来想想啊!
2009-10-31 08:33
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
写了一个,好像很复杂,希望有人写一个验证我的程序,感觉好像有点问题,楼主给的几个通过了.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void rollback(char array[],int Len)
{
char temp;
int i;
for(i=0;i<Len/2;i++)
    temp=array[i],array[i]=array[Len-i-1],array[Len-i-1]=temp;
}

void sort1(int a[])
{
 if(a[0]>9999)
   a[0]=0,++a[1],sort1(&a[1]);
}

void sort2(char test[],int n)
{
 if(test[0]>'a'+n)
   {
    test[0]='#';
    if(test[1]=='\0') test[1]='a';
      else {++test[1];sort2(&test[1],n-1);}
   }
}

void sort3(char test[])
{
 int i;
 for(i=0;test[i]=='#';++i);
 for(--i;i>=0;--i)
    {
     test[i]=test[i+1]+1;
    }
}

int main()
{
 int i,a[10]={1};
 char str[26],test[26]={'a'};
 gets(str);
 rollback(str,strlen(str));
 for(;strcmp(str,test)!=0;)
    {
     ++a[0];sort1(a);
     ++test[0];sort2(test,25);
     sort3(test);
    }
 for(i=9;a[i]==0;--i);
 for(;i>=0;--i)
    printf("%d",a[i]);
 printf("\n");
 system("pause");
 return 0;
}
2009-10-31 09:28
dreamsea
Rank: 2
等 级:论坛游民
帖 子:25
专家分:24
注 册:2009-10-25
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    char ch, ch2;
    long int sum[10], i = 0, s, n;
    while (ch != '\n')
    {
        ch = getchar();
        ch2 = ch - 'a' + 1;
        sum[i] = ch2;
        i++;
    }
    for (n = 0; n < i; n++)
    {
        s =s + sum[n] * pow(26,i - n - 1);
    }

    printf("%ld\n", s);
    return 0;
}
我代码是这样编的  可是好象有问题不管按什么都显示一个很大的数(如2008992345)  高手帮我看看我看不出来问题啊
2009-10-31 11:00
chiZ
Rank: 2
来 自:paradise
等 级:论坛游民
帖 子:27
专家分:99
注 册:2009-10-25
收藏
得分:0 
能不能把原题写出来啊!~~或者说明一下为什么ab is 27, and bc is 52
2009-10-31 12:40
dreamsea
Rank: 2
等 级:论坛游民
帖 子:25
专家分:24
注 册:2009-10-25
收藏
得分:0 
问一下az好了按顺序下一个是ba还是bc  我这里弄不明白没法做
2009-10-31 12:46
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
以下是引用dreamsea在2009-10-31 12:46:28的发言:

问一下az好了按顺序下一个是ba还是bc  我这里弄不明白没法做
楼主说了,az为51,bc为52,你说有ba没有?如果有ba,ba等于多少?
2009-10-31 12:56
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
按题目,给一组字符,必需是有序的,而且是从小到大排序,ba是没有的。
而且最大只排到a~z,就是abcdefghijklmnopqrstuvwxyz
有点思路了,写完再贴程序。

努力—前进—变老—退休—入土
2009-10-31 13:27
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

int len;
long sum=0;
char a[27],b[27];

int panduan(char *a) /* 判断字符串是否为升序 */
{
 char *p=a;
 for(;*(p+1);p++)
   if(*p>=*(p+1)) return 1;

 p=a;
 while(*p)        /* 如有大写转成小写 */
   if(*p++<97) *(p-1)+=32;
 return 0;
}

void funsuan(int n)  /* 递归排字母 */
{
 if((strcmp(a,b))==0)
   {printf("%s\n",b);
    return;
   }
 if(n+1==len)
   {
    b[n]++;
    sum++;
    if(b[n]>'z')
      {

       funsuan(n-1);
       b[n]=b[n-1]+1;
       funsuan(n);
      }
    else funsuan(n);
   }
 else
   {
    b[n]++;
    if(b[n]>=b[n+1]-1)
       {
        funsuan(n-1);
    b[n]=b[n-1]+1;
       }
   }
}

int main(void)
{
 int i;
 while(1)
   {
    gets(a);
    if(panduan(a))
      printf("input error!\n");
    else
     break;
   }
 len=strlen(a);
 for(i=0;i<len;i++)
   b[i]=96;
 b[i]=0;
 funsuan(len-1);

 printf("%s=%ld\n\n",b,sum);
 
 return 0;
}
有VC的朋友帮运行下,看输入:vwxyz 会显示什么,TC递归多次会中断。
我觉得方法没问题。
方法:
    如输入:abc 存入数组a
                 a[0]='a'    a[1]='b'   a[2]='c'
用另一数组b      b[0]        b[1]       b[2]
开始从b[2]  a算到z,只要大于z,b[1]自增1,b[1]一样,只要大于z,b[0]自增1,只要算到a和b字符串比较相等时结束。
再输出累记数就可以了。
·
帮试试呀,告诉我结果,我也再调试调试。                                          

努力—前进—变老—退休—入土
2009-10-31 14:28
快速回复:求一个题目的答案,本人是菜鸟,想了很久没想出!
数据加载中...
 
   



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

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