本人能力有限,网上发布只为帮助可能有需要的人。
勒让德多项式(10分)
问题描述:编一个程序,输入x、n,计算勒让德(Legendre)多项式的第 n 项。
输入:一个浮点数和一个整数分别对应x和n
输出:一个浮点数,即勒让德多项式第n项的值,注意小数点后保留到第2位。
提示:整数除以整数结果仍为整数,所以(n-1)/n的结果是0;为了能够正确计算需要进行强制类型转换(float)n。
样例1:输入 5.5 1 输出:5.50
样例2:输入 5.5 0 输出:1.00
#include<stdio.h>
int main(void)
{
float x,a,b,c;
int n,k;
k=2;a=1;
scanf("%f%d",&x,&n);
b=x;
if(n==0)
printf("1.00");
else if(n==1)
printf("%.2f",x);
else
{
while(k<=n)
{
c=((2.0*k-1.0)/k)*x*b-((k-1.0)/k)*a;
a=b;
b=c;
k++;
}
printf("%.2f",c);
}
return 0;
}
2
计算序列和(10分)
问题描述:请计算如下序列的前100项的和
输入:一个浮点数对应x值
输出:一个浮点数即ex的近似值,小数点后保留到第2位。
提示:注意使用项与项之间的递进关系;不要直接使用幂数和阶乘直接相除计算每一项值,很容易出现溢出错误。
样例:输入0 输出:1.00
#include<stdio.h>
int main(void)
{
double x,a,b,c,sum;
int n;
scanf("%lf",&x);
a=1.0;
b=1.0;
sum=1;
for(n=1;n<101;n++)
{
题目内容:编写程序,判断给定自然数n是否为降序数。降序数是指对于n=d1d2d3…dk,有:di>=di+1,i=1,2,…,k-1。例如:54321就是一个降序数。
输入:一个自然数n
输出:如果n是降序数,则输出YES,否则输出NO
样例1:输入:543 输出:YES
样例2:输入:78082 输出:NO
#include<stdio.h>
int main(void)
{
int n,a,b,i,m,j;
scanf("%d",&n);
j=0;
i=0;
b=0;
while(n>0)
{
m=n-n/10*10;
//printf("%d\n",m);
if(m>j)
i++;
j=m;
n=(n-m)/10;
b++;
}
if((i)==b)
printf("YES");
else
printf("NO");
return 0;
}
题目内容:编写程序,读入n个正整数,输出它们的最小公倍数。其中,lcm(x,y)=x*y/gcd(x,y),其中gcd(x,y)为x和y的最大公约数。
输入:整数个数n,以及n个正整数
输出:最小公倍数m
样例输入:4 1 2 3 8
输出:24
#include<stdio.h>
int main(void)
{
int x,i,n,t,gcd,lcm,k;
scanf("%d",&n);
for(i=0;i<n;i++)//实现多数lcm
{
scanf("%d",&x);
if(i==0)
lcm=x;
if(lcm>x)//将两数排序
{
t=x;
x=lcm;
lcm=t;
}
for(k=x;k>0;k--)//找两数gcd
{
if(x%k==0&&lcm%k==0)
{
//printf("%d\n",k);
gcd=k;
break;
}
}
lcm=x*lcm/gcd;//如题可知
}
printf("%d\n",lcm);
return 0;
}
5
爱因斯坦阶梯问题(10分)
有阶梯,不知其数,但知:每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨7阶,正好到楼顶。编程序求最少共有多少阶。
输入:无
输出:台阶数目
#include<stdio.h>
int main(void)
{
int k;
for(k=0;k<200;k++)
{
if(k%2==1&&k%3==2&&k%5==4&&k%7==0)
printf("%d",k);
}
return 0;
}