您的位置:首页 > 其它

程序举例(初学者)

2019-01-19 00:18 120 查看

例1:用Π/4=1-1/3+1/5-1/7+...公式求Π的近似值,直到某一项的绝对值小于10^6为止。

提示:(1)要确定计算的精度,可以配合while循环语句用fabs()函数确定精度来退出。

(2)据观察,分子不变,分母却每次递增2,且正负切换。

(3)记得结果乘以4。

#include<stdio.h>
#include<math.h>

void main()
{
int s;
float n,t,pi;
t=1;pi=0;n=1.0;s=1;
while(fabs(t)>1e-6)
{
pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%f\n",pi);
}

例2:求Fibonacci数列前40个数。这个数列有如下特点:第1、2两个数为1,1。从第三个数开始,该数是其前面两个数之和。

即:

F(1)=1    (n=1)

F(2)=1    (n=2)

F(n)=F(n-1)+F(n-2)

法1:(我自己做的)

#include<stdio.h>

void main()
{
int f1,f2,n;
n=1;
for(f1=1;n<=40;n++)
{
if(n<=2)
{
f2=1;
printf("%d\n",f1);
}
else
{
if(n%2==0)
f1=f2+f1;
else
f2=f1+f2;
if(f1>f2)
printf("%d\n",f1);
else
printf("%d\n",f2);
}
}
}

 法2:(参考答案)

#include<stdio.h>

void main()
{
int f1,f2,n;
f1=1;
f2=1;
for(n=1;n<=20;n++)
{
printf("%d\n%d\n",f1,f2);
f1=f1+f2;
f2=f2+f1;
}
}

例3:写一个程序,允许输入一个数m,并判断m是否为素数。

算法思想:让m被2到k除,如果m能被2~k之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k;如果m不能被2~k之间任意一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2~k之间任意整数整除过,因此输出“是素数”。

法1:(我自己做的)

#include<stdio.h>

void main()
{
int i,m;
scanf("%d",&m);
for(i=2;i<m;i++)
{
if(0==m%i)
{
printf("%d is not a prime number\n",m);
break;
}
}
if(i==m)
printf("%d is a prime number\n",m);
}

 法2(参考答案)

#include<stdio.h>
#include<math.h>

void main()
{
int m,i,k;
scanf("%d",&m);
k = sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
{
break;
}
}
if(i>k)
{
printf("%d is a prime number",m);
}
else
{
printf("%d is not a prime number",m);
}
}

例4:把100~200间的素数全部打印出来。

#include<stdio.h>

void main()
{
int m,i;
for(m=100;m<=200;m++)
{
for(i=2;i<m;i++)
{
if(0==m%i)
break;
}
if(m==i)
{
printf("%d\n",m);
}
}
}

例5:按以下规律将电文变成密码:

将字母A变成字母E,a变成e,即变成其后的第四个字母,W变成A,X变成B,Y变成C,Z变成D。

提示:两个功能:

一、输入原文译成密码。

二、输入密码译成原文。

  

    

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: