| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3604 人关注过本帖, 2 人收藏
标题:一个编程题目,求解题思路,不要求过程,当然有过程更好,望各位高手不吝赐教!
只看楼主 加入收藏
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
/********************************************************
** Highlight software by yzfy(雨中飞燕) http:// *
*********************************************************/

#include<stdio.h>
#include<string.h>
char out[100000]={0};

int main(void)
{
    int q=0;
    char sp[50];
    while (scanf(" %s%d", sp, &q)!=EOF)
    {
        char* ps=out;
        int s=0,l=0;
        strcpy(out, sp);
        ps += l = (int)strlen(sp);
        for (char* ps1=out;;++ps,++ps1)
        {
            int t = s*10+(*ps1-'0');
            s = t%q; *ps = t/q+'0';
            if (s==0 && strncmp(sp, ps-l+1, l)==0)
                break;
        }
        ps[1]=0;
        printf("%s\n", out+l);
    }
    return 0;
}


My solution

[color=white]
收到的鲜花
  • 死了都要C2008-05-12 21:15 送鲜花  8朵   附言:看不懂也要加分```
  • forever742008-05-13 01:09 送鲜花  3朵   附言:还是应该从前往后推
2008-05-12 17:26
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
呵呵,这个帖子已经不是原来的含义了
~~~~~~~
    如:有一个新婚小媳妇发问:晚上我想炖块豆腐,怎么做啊?

    一个主厨多年的大婶:把豆腐切巴切巴扔锅里,放点调料,炖就行了;

    另一位大姐:弄几条泥鳅,活着和豆腐放在锅里,加上凉水,文火……

    一位营养专家:……

    一位高厨:……

    一位德高望重的据说会做满汉全席的老厨师:……


~~~~~~~~~~~~~~~~~~~~~

    其实这帖子真的很有深度,新手们看到了新颖的一题,锻炼了自己的思维方式;高手们从中看到了各种运算的应用及大数的运算,在他们的代码中,新手们也看到了完全不一样的算法。也算是各取所需吧。

    顶LZ,不过LZ好象发完帖子后便不再出现,也算是扫兴的一点缺憾吧。
收到的鲜花
  • qinxinhai2008-05-12 21:27 送鲜花  3朵   附言:很黄,很暴力
2008-05-12 18:27
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
话说,不是很明白广陵的意思……反正我明白飞燕的代码了,我的程序只在p小于等于2位数才不会出错……不过懒得改了……等会儿写个伪代码出来就算了吧……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-12 18:44
ningyusui
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-1-14
收藏
得分:0 
楼主可能明天来看答案....
广陵境界很高, 我居然什么都没看出来...可见既不是新手, 更不是高手..显然还没有入门...比如传真教的杨过, 能称之为新手么? 只有在他拜小龙女为师, 加入古墓派之后, 才能称之为新手...
我要继续努力啊...
我的小龙女在哪里?
2008-05-12 18:45
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
废话水平果然高,废话境界更是高。不知所云

[color=white]
2008-05-12 19:09
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 33# 的帖子
呵呵,我的意思是:一道题,不同的人,能作出不同的代码,也能看出不同的深度来。

    也许我的表达有误,导致大家看得云里雾中。

    回家吃饭去……
2008-05-12 19:26
jiang5495
Rank: 1
等 级:新手上路
威 望:2
帖 子:296
专家分:0
注 册:2008-5-11
收藏
得分:0 
不好意思现在才来看答案!
广陵绝唱,暂且称之为老师吧,你的编程方法对我启发很大,转头一想才知自己
的做法这末笨,补充一下2<=q<=p<=9.我忘打了,没想到各位还是做出来了.
我把广陵老师的方法改进了一下:
思路:假设原数是x,则x满足:x/10+p*pow(10,wei)=q*x;
wei表示x是几位数;
我的代码如下:
# include<stdio.h>
# include<math.h>
# define N 999999
void main()
{
long x;
int p,q,wei;
printf("Please enter two number 2<=q<=p<=9!\n");
scanf("%d%d",&p,&q);
for(x=p;x<N;x=x+10)
{
wei=log10(x)+1;
if(x/10+p*pow(10,wei)==x*q)
{printf("The number is :%ld",x);
break;}
}
if(x>=N)
printf("NOT found!\n");
getch();
}

问题:好象逻辑没错误,但不知为什么运行不出结果望各位指教!

再有看到各位高手编的程序,我受益非浅!我还须大大加油才能赶上你们!
2008-05-12 20:51
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
等你看懂我的方法,你就知道更多

[color=white]
2008-05-12 21:08
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
人说,飞燕的代码看懂了是享受,看不懂是难受……
别误会,是在夸你……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-12 21:19
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
回复 37# 的帖子
看到上面某一楼就知道了,这个数字可以大到非常BT,比如3 1001,这个数字5004位,就小一点3 9也有44位数,你的N六位数,够么?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-12 21:23
快速回复:一个编程题目,求解题思路,不要求过程,当然有过程更好,望各位高手不吝赐 ...
数据加载中...
 
   



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

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