欢迎来到天天文库
浏览记录
ID:59430762
大小:140.50 KB
页数:42页
时间:2020-09-18
《语言常见算法ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一素数、随机数、最大值和最小值(1)判断一个数是否为素数素数:只能被1和它本身整除的数。要判断一个正整数m是不是素数,需要用大于1且小于它本身的正整数去除它,只要它能被其中的一个数整除,就说明它不是素数。若所有的数都不能被它整除,说明它是素数。杠衅肩盂肾对讽型厌墒财辆襄籽妮鬼全毁胎慈舅人旅硫穷啊苗彭废戎瘟逮C语言常见算法C语言常见算法例1:输出3—100之间的所有素数main(){inti,n,k=0;for(n=3;n<100;n++){for(i=2;i2、”,n);k++;if(k%10==0)printf(“”);}}}寺炸某坞贫操宵亚猾肘傻今莆看烙盛桔为谅九驳凉所暗纱恨壳咎报模性荆C语言常见算法C语言常见算法(2)随机数函数random(intnum)用于产生[0,num)区间的一个整数。其包含在“stdlib.h”头文件中为了使每一次运行都产生一组新的随机数,可以使用randomize()函数是每次均产生不同的随机数。其包含在头文件“time.h”中(3)最大值与最小值我们需要将最大值(或最小值)保存在一个变量中(假设设变量名为max和min),变量的初值我们一般设为数列中的第一个值3、。匹喊告佐握汕惜盾卤拼骸腮壕陈铱茄仪塑笋蚌估语消塌则欺桩握辆贼受成C语言常见算法C语言常见算法例2:产生20个50到200之间的随机整数,并求出其中的素数、最大值和最小值。#include"stdlib.h"#include"time.h"main(){inta[20],b[20],max,min,k,i,j=0;randomize();for(i=0;i<20;i++)a[i]=random(151)+50;产生20个[50,200]区间内的随机数撰颇吭仲掇左措都涩笼嘻赔森该窄关顾疫澜锹渣吕讹淋钝河藩刷邱透截剩C语言常见算法C语言常见算法f4、or(i=0;i<20;i++){for(k=2;kmax)max=a[i];if(a[i]5、;}求出a数组中的最大值与最小值琅诉瘴涌农碴贸撵酥缚毅喇物吃评翱际躁堕肃往砖滨排进崎靠躲籽营懒蔚C语言常见算法C语言常见算法二、求累加和的算法1循环条件次数控制(加多少项n,20,100)用误差控制(直到某一项小于或大于一个数)使用终止标记2循环体求和求每一项:从前一项求出后一项、单独求每一项为下一项作准备3循环初值:设为0、设为第一项注意双重循环设初值的位置忌疙诚迂手侄守叭擒娠外罩秘哇扼头缨唉惋邑减苹府溜漆陡嘶哇棉夹凸陵C语言常见算法C语言常见算法4-16有一分数序列的前20项之和main(){inti;floatf1=1,f2=1,f3,6、s=0;for(i=1;i<=20;i++){f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;}printf("s=%f",s);}intf1,f2……s=s+1.0*f2/f1s=s+(float)f2/f1焰截躯淑违娘缔韭饿餐涛瀑侥譬拿姚麻绿巷黑叭密熙蔑畸斤更沉风撼孔古C语言常见算法C语言常见算法三、迭代问题这种方法是使用某个公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。茬楼绘慎右区炭大尖杠细正坏汹淤浩烽被廖簇卉玉偷综立香惮另型围栅被C语言常见算法C语言常见算法例:用牛顿迭代法求方程在1.5附近的根7、(精度为10-5)2x3-4x2+3x-6=0迭代公式为:x=x0-f/f1(f1为方程的导数公式)#include"math.h"main(){floatx,x0,f,f1;x0=1.5;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;辩摹擦威蔼炙拴滤饼椭就勤允邢忿韧泞郸兜座停圣衅孜循禾吐烧遏蹿欧狭C语言常见算法C语言常见算法while(fabs(x-x0)>=1e-5){x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}pri8、ntf("%10.8f",x);}梦赃涨豁足芽性行录失蜡捅控怨磁孪箍评戮侨咽曼慕挖池陡棋绽顽涣膜速C语言常见算法C语言常见算法四、数字分离有些题中经常要求将一个
2、”,n);k++;if(k%10==0)printf(“”);}}}寺炸某坞贫操宵亚猾肘傻今莆看烙盛桔为谅九驳凉所暗纱恨壳咎报模性荆C语言常见算法C语言常见算法(2)随机数函数random(intnum)用于产生[0,num)区间的一个整数。其包含在“stdlib.h”头文件中为了使每一次运行都产生一组新的随机数,可以使用randomize()函数是每次均产生不同的随机数。其包含在头文件“time.h”中(3)最大值与最小值我们需要将最大值(或最小值)保存在一个变量中(假设设变量名为max和min),变量的初值我们一般设为数列中的第一个值
3、。匹喊告佐握汕惜盾卤拼骸腮壕陈铱茄仪塑笋蚌估语消塌则欺桩握辆贼受成C语言常见算法C语言常见算法例2:产生20个50到200之间的随机整数,并求出其中的素数、最大值和最小值。#include"stdlib.h"#include"time.h"main(){inta[20],b[20],max,min,k,i,j=0;randomize();for(i=0;i<20;i++)a[i]=random(151)+50;产生20个[50,200]区间内的随机数撰颇吭仲掇左措都涩笼嘻赔森该窄关顾疫澜锹渣吕讹淋钝河藩刷邱透截剩C语言常见算法C语言常见算法f
4、or(i=0;i<20;i++){for(k=2;kmax)max=a[i];if(a[i]5、;}求出a数组中的最大值与最小值琅诉瘴涌农碴贸撵酥缚毅喇物吃评翱际躁堕肃往砖滨排进崎靠躲籽营懒蔚C语言常见算法C语言常见算法二、求累加和的算法1循环条件次数控制(加多少项n,20,100)用误差控制(直到某一项小于或大于一个数)使用终止标记2循环体求和求每一项:从前一项求出后一项、单独求每一项为下一项作准备3循环初值:设为0、设为第一项注意双重循环设初值的位置忌疙诚迂手侄守叭擒娠外罩秘哇扼头缨唉惋邑减苹府溜漆陡嘶哇棉夹凸陵C语言常见算法C语言常见算法4-16有一分数序列的前20项之和main(){inti;floatf1=1,f2=1,f3,6、s=0;for(i=1;i<=20;i++){f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;}printf("s=%f",s);}intf1,f2……s=s+1.0*f2/f1s=s+(float)f2/f1焰截躯淑违娘缔韭饿餐涛瀑侥譬拿姚麻绿巷黑叭密熙蔑畸斤更沉风撼孔古C语言常见算法C语言常见算法三、迭代问题这种方法是使用某个公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。茬楼绘慎右区炭大尖杠细正坏汹淤浩烽被廖簇卉玉偷综立香惮另型围栅被C语言常见算法C语言常见算法例:用牛顿迭代法求方程在1.5附近的根7、(精度为10-5)2x3-4x2+3x-6=0迭代公式为:x=x0-f/f1(f1为方程的导数公式)#include"math.h"main(){floatx,x0,f,f1;x0=1.5;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;辩摹擦威蔼炙拴滤饼椭就勤允邢忿韧泞郸兜座停圣衅孜循禾吐烧遏蹿欧狭C语言常见算法C语言常见算法while(fabs(x-x0)>=1e-5){x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}pri8、ntf("%10.8f",x);}梦赃涨豁足芽性行录失蜡捅控怨磁孪箍评戮侨咽曼慕挖池陡棋绽顽涣膜速C语言常见算法C语言常见算法四、数字分离有些题中经常要求将一个
5、;}求出a数组中的最大值与最小值琅诉瘴涌农碴贸撵酥缚毅喇物吃评翱际躁堕肃往砖滨排进崎靠躲籽营懒蔚C语言常见算法C语言常见算法二、求累加和的算法1循环条件次数控制(加多少项n,20,100)用误差控制(直到某一项小于或大于一个数)使用终止标记2循环体求和求每一项:从前一项求出后一项、单独求每一项为下一项作准备3循环初值:设为0、设为第一项注意双重循环设初值的位置忌疙诚迂手侄守叭擒娠外罩秘哇扼头缨唉惋邑减苹府溜漆陡嘶哇棉夹凸陵C语言常见算法C语言常见算法4-16有一分数序列的前20项之和main(){inti;floatf1=1,f2=1,f3,
6、s=0;for(i=1;i<=20;i++){f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;}printf("s=%f",s);}intf1,f2……s=s+1.0*f2/f1s=s+(float)f2/f1焰截躯淑违娘缔韭饿餐涛瀑侥譬拿姚麻绿巷黑叭密熙蔑畸斤更沉风撼孔古C语言常见算法C语言常见算法三、迭代问题这种方法是使用某个公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。茬楼绘慎右区炭大尖杠细正坏汹淤浩烽被廖簇卉玉偷综立香惮另型围栅被C语言常见算法C语言常见算法例:用牛顿迭代法求方程在1.5附近的根
7、(精度为10-5)2x3-4x2+3x-6=0迭代公式为:x=x0-f/f1(f1为方程的导数公式)#include"math.h"main(){floatx,x0,f,f1;x0=1.5;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;辩摹擦威蔼炙拴滤饼椭就勤允邢忿韧泞郸兜座停圣衅孜循禾吐烧遏蹿欧狭C语言常见算法C语言常见算法while(fabs(x-x0)>=1e-5){x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}pri
8、ntf("%10.8f",x);}梦赃涨豁足芽性行录失蜡捅控怨磁孪箍评戮侨咽曼慕挖池陡棋绽顽涣膜速C语言常见算法C语言常见算法四、数字分离有些题中经常要求将一个
此文档下载收益归作者所有