打印

与c有关的程序设计

[复制链接]
1674|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heyi123|  楼主 | 2010-4-9 07:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
整数n的尾数字p移到n的前面所得的数为n的q倍,记为n(p,q),约定 。如:设n为efg...wa(每一个字母表示一位十进制数),尾数a前移后变为aefg...w,它是n的q倍。
设计程序,对于指定的尾数p与倍数q,求解n(p,q).
【输入】
请从标准输入设备输入pq )。
【输出】
从标准输出设备输出n(p,q)的解。

【样例输入】
4
4

【样例输出】
n(4,4)=102564
我写的程序是这样的:
#include"stdio.h"
long int n(int p,int q);
void main()
{
int p,q;
printf("please input the last number p:");
scanf("%d",&p);
printf("\nplease input the times q:");
scanf("%d",&q);
printf("%ld",n(p,q));
}
long int n(int p,int q)
{
int j=1;
long int k,m;
for(m=p;;m+=10)
{

k=m;
          while(k>10)
          {

       k=k/10;
                 j*=10;
          }
         if((m%10==p)&&((j*p+m/10)/m==q))

         return m;
}
}

运行没结果,似乎进入了死循环,这是为什么呢?希望大家指导指导!
另外求下题的算法:
一个递推分数数列的构成规律为: 1/2, 3/5, 4/7, 6/10,...。设每一项的分子c与分母d(c、d为正整数),第i项的分母d与分子c存在以下关系:d=c+i;而c为与前i-1项中的所有分子分母均不相同的最小正整数。
求出该数列的第n(1<n<3000)项,并求出前n项中的最大项。
【输入】
请从标准输入设备输入 n
【输出】
从标准输出设备输出,第一行为数列的第n项的分数值(以c/d形式输出,下同),第二行输出数列前n项中的最大项的值。

【样例输入】
1000
【样例输出】
1618/2618
谢谢大家了!

相关帖子

沙发
路艳华smile| | 2010-4-12 21:45 | 只看该作者
:victory:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:坚持自我

10

主题

35

帖子

1

粉丝