《2022年C语言基本算法 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言基本算法 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言基本算法第一章最简单的问题和算法1、求N的N次方的最后三位数1 main()2 int i,x,y,k=1;3 scanf(%d%d,&x,&y);4 for(i=1;i=y;i+)5 k=k*x%1000;6 printf(%d,k);7 2、100!的末尾多少个零1 main()2 int count=0,i;3 for(i=5;i0)3 putchar(0+(unsigned)(x&1(n-1);/取第 N-1位的二进制值,并打印出来4 printb(x,n-1);5 6 main()7 int x;8 scanf(%d,&x);9 printb(x,sizeof(int)*8);
2、10 4、第一个人将鱼分成五份,把多余的一条鱼扔掉,拿走自己的一份,第二个人同样将鱼分成五份。拿走自己的一份,依次下去,问共有多少鱼?main()int i,n,x,flag=1;for(n=6;flag;n+)for(i=1,x=n;flag&i=5;i+)1 2 3 4 5 6 7 8 9 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -if(x-1)%5=0)x=x*4/5;else flag=0;if(flag)break;else flag=1;printf(%d,n);问题进一步讨论:程序采用试探法,试探的初值为6,每次试探的步长为1,这是过分保守的做法,可
3、以在进一步深入分析题目的基础上修改初值,增大试探的步长值,以减少试探次数。5、冒泡法排序函数bubble(int a,int n)int i,j,k;for(i=1;in;i+)for(j=0;jaj+1)k=aj;aj=aj+1;aj+1=k;6、选择法排序函数sort(int a,int n)int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jaj)k=j;if(k!=j)t=ai;ai=ak;ak=t;7、第一次卖出了全部金鱼的一半加2 分之一条金鱼;第二次卖出剩金鱼的三分之一加三分之一条金鱼;第三次卖出剩金鱼的四分之一加四分之一条金鱼;第四次卖出剩金鱼
4、的五分之一加五分之一条金鱼,最后还剩11 条。问原来有多少条金鱼?main()int x,i,j,k=0;for(i=23;k=0;i+=2)for(j=1,x=i;j=11;j+)if(x+1)%(j+1)=0)x-=(x+1)/(j+1);else break;if(x=11&j=5)printf(%d,i);k=1;思考题:父亲将 2520 个桔子分给六个儿子。分完后父亲说:“老大将分给你的桔子的1/8 给老二;老二拿到后连同原先的桔子分1/7 给老三;老三拿到后连同原先的桔子分1/6 给老四;老四拿到后连同原先的桔1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 10 1
5、 2 3 4 5 6 7 8 9 10 11 12名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -子分 1/5 给老五;老五拿到后连同原先的桔子分1/4 给老六;老六拿到后连同原先的桔子分1/3 给老大”。结果大家手中的桔子正好一样多。问六兄弟原来手中各有多少桔子?(答案:240 460 434 441 455 490)名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -8、甲乙丙三渔夫出海打渔,他们随传带21 只箩筐,当晚返回是,他们发现七筐装满了鱼,还有七筐装了半筐鱼,另外七筐是空的,由于他们没有称,通过目测,七个半框是相等的,七满眶重量是相等的
6、,若不将鱼带出来的前题下,怎样将于和筐评分为三份?#include int a33,count;void main()int i,j,k,m,n,flag;printf(Possible plans:n);for(i=0;i=3;i+)/第一个渔夫满筐数,不得超过3 a00=i;for(j=i;j3)continue;/第三个渔夫满筐数,不超3 if(a20a10)break;/为了避免重复情况,假设第三个渔夫满筐数不少于前面的for(k=1;k=5;k+=2)/半筐数,一定为奇数,因为每人平均分3.5 筐鱼a01=k;for(m=1;m7-i;m+=2)a11=m;a21=7-k-m;for
7、(flag=1,n=0;flag&n3;n+)if(an0+an17&an0*2+an1=7)/计算是否满足情况an2=7-an0-an1;else flag=0;if(flag)/满足情况则输出printf(NO.%d Full basket Semi-basket Emptyn,+count);for(n=0;n3;n+)printf(fisher%c:%d%d%dn,A+n,an0,an1,an2);思考题:宴会上数学家出了一道题:假定桌子上有3 瓶酒,将每瓶酒分给几个人喝,但是喝各瓶酒的人数是不一样滴,不过其中有一个人喝了每一瓶中滴酒,且加起来刚好是一瓶,请问喝这3 瓶酒的各有多少人?
8、(答案:喝酒三瓶洒的人分别为2 人、3 人和 6 人)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -第二章整数趣题9、一个自然数被8 除余 1,所得的商被8 除也余 1,再将第二次的商被8 除后余 7,最后得到一个商为a。又知这个自然数被17 除余 4,所得的商被17 除余 15,最后得到一个商是a 的 2 倍。求这个自然数。(答案:1993)10、如何将其用switch 进行表达?if(n=20)a=0.85;else a=1.25;#include int main(void)int i,j,n;float a;scanf(%d,&n);i=n=20;switch(i*10+j)case 10:a=0.35;break;case 1:a=0.85;break;default:a=1.25;break;printf(%fn,a);1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -