1. (15分) c_5_1最大公约数
题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入描述
输入为整型
输出描述
输出为整型(输出里的冒号为中文冒号)
输入样例
12,15
输出样例
最大公约数为:3
最小公倍数为:60
用户代码
#include<stdio.h>
int main()
{
int a,b,c,d,e;
scanf("%d,%d",&a,&b);
e=a*b;
if(a<b)
{
d=a;
a=b;
b=d;
}
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
e=e/b;
printf("最大公约数为:%d\n",b);
printf("最小公倍数为:%d\n",e);
return 0;
}
2. (15分) c_5_3数列和
题目描述
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13……,求该数列的前n项之和。
输入描述
输入计算的项数(整数)
输出描述
输出和为浮点数据,小数点后保留4位
输入样例
3
输出样例
前3项的和=5.1667
用户代码
#include<stdio.h>
int main()
{
int n,i=0;
double a=2,b=1,t,sum=0;
scanf("%d",&n);
while(i!=n)
{
sum=sum+a/b;
t=a;
a=a+b;
b=t;
i++;
}
printf("前%d项的和=%.4f\n",n,sum);
return 0;
}
3. (15分) c_5_7梯形法求积分
题目描述
用梯形法求(2x5+5x3)dx的积分。
输入描述
依次输入积分起点(双精度),终点(双精度),步数(整数),标点用英文。
输出描述
结果(双精度)
输入样例
2,3,1000
输出样例
302.92
用户代码
#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
double a,b,c,d,h,sum;
scanf("%lf,%lf,%d",&a,&b,&n);
h=(b-a)/n;
sum=0,i=1;
while(i<=n)
{
c=2*pow(a+(i-1)*h,5)+5*pow(a+(i-1)*h,3);
d=2*pow(a+i*h,5)+5*pow(a+i*h,3);
sum=sum+(c+d)*h/2;
i++;
}
printf("%.2f",sum);
return 0;
}
4. (10分) c_5_2水仙花数
题目描述
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。
输出描述
每行输出一个水仙花数,按从小到大的顺序输出。
输出样例
153
370
371
407
用户代码
#include<stdio.h>
#include<math.h>
int main()
{
int i;
double a,b,c,d,sum;
a=100,b=0,c=0,d=0,i=1,sum=0;
while(i<=4)
{
b=(int)a/100,c=(int)a%100/10,d=(int)a%10;
b=pow(b,3),c=pow(c,3),d=pow(d,3);
sum=b+c+d;
if(a!=sum)
a++;
else
{
printf("%.0f\n",sum);
i++,a++;
}
}
return 0;
}
5. (10分) c_5_4牛顿迭代法求根
题目描述
用牛顿迭代法求下面方程在1.5附近的根,2x3-4x2+3x-6=0。
输出描述
输出只保留小数点后2位
输入样例
无
输出样例
2.00
用户代码
#include<stdio.h>
#include<math.h>
int main()
{
double x,y,y1;
x=1.5;
y=2*pow(x,3)-4*pow(x,2)+3*x-6;
y1=6*pow(x,2)-8*x+3;
while(y!=0)
{
x=x-y/y1;
y=2*pow(x,3)-4*pow(x,2)+3*x-6;
y1=6*pow(x,2)-8*x+3;
}
printf("%.2f",x);
return 0;
}
6. (10分) c_5_5求满足条件的数
题目描述
编程求出200~300之间满足下列条件的数:该数的三个数字之积为42,三位数字之和为12。
输出描述
按从小到大的顺序每行输出一个三位数
输入样例
无
输出样例
237
273
用户代码
#include<stdio.h>
int main()
{
int x,a,b,c,sum,sub;
x=200;
while(x<=300)
{
a=x/100;
b=x/10%10;
c=x%10;
sub=a*b*c;
sum=a+b+c;
if(sub==42&&sum==12)
{
printf("%d\n",x);
x++;
}
x++;
}
return 0;
}
7. (10分) c_5_6人民币换零钱
题目描述
用一张100元人民币换5元、1元、0.5元面值的人民币,要求各种面值的人民币至少各一张,且总张数为100张,问共有多少种换法,各种面值分别为多少张?
输出描述
按printf(“5元:%2d张,\t1元:%2d张,\t0.5元:%2d\n”,i,j,k);格式输出。
输入样例
无
输出样例
5元: 1张, 1元:91张, 0.5元: 8
5元: 2张, 1元:82张, 0.5元:16
5元: 3张, 1元:73张, 0.5元:24
5元: 4张, 1元:64张, 0.5元:32
5元: 5张, 1元:55张, 0.5元:40
5元: 6张, 1元:46张, 0.5元:48
5元: 7张, 1元:37张, 0.5元:56
5元: 8张, 1元:28张, 0.5元:64
5元: 9张, 1元:19张, 0.5元:72
5元:10张, 1元:10张, 0.5元:80
5元:11张, 1元: 1张, 0.5元:88
总共有11种换法
用户代码
#include<stdio.h>
int main()
{
int i,j,k,n;
i=1,k=0,j=100-i-k,n=0;
for(i=1;i<=98;i++)
{
k = 1;
while(k<=100-i-1)
{
j=100-i-k;
if(5*i+j+0.5*k==100)
{
printf("5元:%2d张,\t1元:%2d张,\t0.5元:%2d\n",i,j,k);
n++;
}
k++;
}
}
printf("总共有%d种换法",n);
return 0;
}