C语言实验问题

(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数在运行时,输入的值m>n,观察结果是否正确。再输入时,使m<n,观察结果是否正确。修改程序,不论m和n为何值(包... (1)输入两个正整数m和n ,求它们的最大公约数和最小公倍数
在运行时,输入的值m>n,观察结果是否正确。
再输入时,使m<n,观察结果是否正确。
修改程序,不论m和n 为何值(包括负整数),都能得到正确结果。
(2)试编程求解1000以内的完全数。如果一个数恰好等于它的因子之和,则称该数为完全数。如6=1+2+3
(3)用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
在得到正确结果后,请修改程序使所设的x 初始值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?
修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。
(4)猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子。求第一天共摘了多少桃子。
在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程序并运行,检查结果是否正确。

好的话追加分,跪求呀,谢谢!!!!
展开
 我来答
庚午子李
2011-05-14 · TA获得超过369个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:122万
展开全部
一定要采用啊!化很长时间的:

第一题:
#include<iostream.h>
int mul(int M,int N)
{
if(N==0)
return M;
return mul(N,M%N);
}
void main()
{
cout<<"输入两个数:";
int M,N;
cin>>M>>N;
int z=mul(M,N);
cout<<"最大公约数:"<<z<<"\n"<<"最小公倍数:"<<M*N/z<<endl;
}

第二题:
#include<stdio.h>
void main()
{
int m,s,i;
for(m=2;m<1000;m++)
{
s=0;
for(i=1;i<m;i++)
if(m%i==0)
s=s+i;
if(s==m)
{
printf("%3d,its factors are",m);
for(i=1;i<m;i++)
if(m%i==0)
printf("%5d",i);
printf("\n");
}

}
}

第三题:
#include<stdio.h>
#include<math.h>
void main()
{
float x1,x0,f,f1;
x1=1.5;
do
{
x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
}while(fabs(x1-x0)>1e-5);
printf("the root of equation is %5.2f\n",x1);
}
第四题:
第一个:
#include<stdio.h>
void main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
}

第二个:
#include<stdio.h>
void main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+2)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
}
cxl1314cjw
2011-05-16 · TA获得超过1074个赞
知道小有建树答主
回答量:776
采纳率:100%
帮助的人:461万
展开全部
输入两个正整数m和n, 求其最大公约数和最小公倍数.

<1> 用辗转相除法求最大公约数
算法描述:
m对n求余为a, 若a不等于0
则 m <- n, n <- a, 继续求余
否则 n 为最大公约数
<2> 最小公倍数 = 两个数的积 / 最大公约数

#include
int main()
{
int m, n;
int m_cup, n_cup, res; /*被除数, 除数, 余数*/
printf("Enter two integer:\n");
scanf("%d %d", &m, &n);
if (m > 0 && n >0)
{
m_cup = m;
n_cup = n;
res = m_cup % n_cup;
while (res != 0)
{
m_cup = n_cup;
n_cup = res;
res = m_cup % n_cup;
}
printf("Greatest common divisor: %d\n", n_cup);
printf("Lease common multiple : %d\n", m * n / n_cup);
}
else printf("Error!\n");
return 0;
}

-----------------------猴子吃桃-------------------------
#include <stdio.h>
main( )
{
int i, peach;
peach=1;
printf("Enter i:");
scanf("%d",&i);
while(i>1)
{
i--;
peach=(peach+1)*2;
}
printf("%d\n", peach);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ifjm
2011-05-08 · 超过18用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:55.9万
展开全部
留个联系方式吧,正好最近在研究算法,做做看。
算了,这些还是你自己做吧,题都很简单,你自己应该得做得来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式