程序设计基础2020实验四-函数

发布于 2021-01-16 08:38

  • 代码仅供参考,有不足之处请指出。

  • 01:计算多项式的值

  • 假定多项式的形式为xn+xn-1+…+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值。

  • 输入

  • 输入仅一行,包括x和n,用单个空格隔开。x在float范围内,n <= 1000000。

  • 输出

  • 输出一个实数,即多项式的值,精确到小数点后两位。保证最终结果在float范围内。

  • 样例输入

  • 2.0 4
  • 样例输出

  • 31.00
    #include <iostream>#include <stdio.h>#include <iomanip>#include <cmath>#include <string>using namespace std;int main(){  int n;  float x,ans=0;  cin>>x>>n;  for(int i=0;i<=n;i++)  {    ans+=pow(x,i);  }  printf("%.2f",ans);  return 0;}
  • 02:求出e的值

  • 利用公式e = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! 求e 。

  • 输入

  • 输入只有一行,该行包含一个整数n(2<=n<=15),表示计算e时累加到1/n!。

  • 输出

  • 输出只有一行,该行包含计算出来的e的值,要求打印小数点后10位。

  • 样例输入

  • 10
  • 样例输出

  • 2.7182818011
    #include <iostream>#include <stdio.h>#include <iomanip>#include <cmath>#include <string>using namespace std;double a[25];int main(){  int n;  double e=2.0;  cin>>n;  a[1]=1,a[2]=1;  for(int i=2;i<=n;i++)  {    a[i]=i*a[i-1];    e+=1/(a[i]);  }  printf("%.10f",e);  return 0;}
  • 03:歌德巴赫猜想

  • 歌德巴赫猜想,是指对于每一个大于4的偶数n,都能表示成两个质数之和。现在,你需要写程序验证这一猜想。对于n,找出质数ab, 满足a+b=n, ab,且a*b最大。例如n=8,满足条件的ab分别为35

  • 又如n=10,质数37以及55满足a+b=n, ab,而乘积大的那组是55

  • 输入

  • 每行一个偶数n(4 < n <= 20000)。

  • 输出

  • 对应于每个输入的偶数,输出a、一个空格、b、一个换行符。

  • 样例输入

  • 8
    10
    1000
  • 样例输出

  • 3 5
    5 5
    491 509
    #include <iostream>#include <math.h>#include <stdio.h>using namespace std;bool zs(int n){   for ( int i=2;i*i<=n;i++)   if(n%i==0) return 1;   return 0;}int main(){   int n,i;   while (cin>>n)   {      for(i=n/2;zs(i)||zs(n-i);i--);      cout<<i<<" "<<n-i<<endl;   }   return 0;}
  • 04:素数回文数的个数

  • 求11到n之间(包括n),既是素数又是回文数的整数有多少个。

  • 输入

  • 一个大于11小于1000的整数n。

  • 输出

  • 11到n之间的素数回文数个数。

  • 样例输入

  • 23
  • 样例输出

  • 1
  • 提示

  • 回文数指左右对称的数,如:292,333。

    #include <iostream>using namespace std;bool HuiWen ( int n ){    int a=n,t=0,x;    while ( a )    {        x=a%10;        t=t*10+x;        a/=10;    }    if(t==n)return 1;    else return 0;}bool SuShu ( int x){    int c;    for (int i=2;i*i<=x;i++)        if (x%i==0)             return 0;    return 1;}int main ( ){    int sh,i=11,l=0;    cin>> sh;    for ( ;i<=sh; i++)    {        if(HuiWen ( i )&&SuShu ( i ))  l++;    }    cout<<l<<endl;    return 0;}

网址:http://qdacm.openjudge.cn/

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材