标题:一个编程题目,求解题思路,不要求过程,当然有过程更好,望各位高手不吝赐教!
取消只看楼主
jiang5495
Rank: 1
等 级:新手上路
威 望:2
帖 子:296
专家分:0
注 册:2008-5-11
结帖率:100%
 问题点数:0 回复次数:1 
一个编程题目,求解题思路,不要求过程,当然有过程更好,望各位高手不吝赐教!
一个尾数前移问题,
如:102564
它的尾数是4;
将尾数前移得:410256;
而刚好:410256能整除102564且为4;
现在的问题是:
我们将尾数记为:p;
将尾数前移后所得数去整除原数,所得结果记为: q;(前提p能被q整除);
从键盘输入p和q;
从屏幕输出:与之对应的原数;

输入举例:
4 4
输出举例:
102564



我对这个程序是这样实现的:
# include<stdio.h>
void main()
{
long a[11],m,n,i,j,p,q,flag,flagf=0,k;
printf("Please enter two numbers 2<=q<=p<=9!\n");
scanf("%ld%ld",&p,&q);
a[1]=p;
for(a[10]=0;a[10]<=9;a[10]++)
for(a[9]=0;a[9]<=9;a[9]++)
for(a[8]=0;a[8]<=9;a[8]++)
for(a[7]=0;a[7]<=9;a[9]++)
for(a[6]=0;a[6]<=9;a[6]++)
for(a[5]=0;a[5]<=9;a[5]++)
for(a[4]=0;a[4]<=9;a[4]++)
for(a[3]=0;a[3]<=9;a[3]++)
for(a[2]=0;a[2]<=9;a[2]++)
{
 for(j=10;j>=2;j--)
 {
  if(a[j]!=0)
  {
  flag=j;
  break;}
  }
  m=n=0;
  while(j>=2)
  {
  for(k=1;k<=j-1;k++)
  a[j]=a[j]*10;
  n=n+a[j];
  }
  n=n+a[1];
  j=flag;
  while(j>=2)
  {
  a[j]=a[j]/10;
  m=m+a[j];}
  for(k=1;k<=flag-1;k++)
  a[1]=a[1]*10;
  m=m+a[1];
  if(m%n==0)
  if(m/n==q)
  {
  printf("%ld",n);
  flagf=1;
  break;}
  a[1]=p;
  }
   if(flagf!=1)
   printf("NOt found!\n");
   getch();
   }



下面是我的问题:
我的着个程序陷入了死循环。
但我相信这个题目肯定还有其他解法,望各位高手指教一二;
只要告诉我基本思路就可一了。
搜索更多相关主题的帖子: 思路 题目 尾数 解题 
2008-05-11 17:53
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-213749-1-1.html




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

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