C语言经典算法 11-20

  • 十一、求最大公约数和最小公倍数
  • 十二、统计字符串数字,字母,符号的各个数量
  • 十三、2+22+222+.....
  • 十四、完数
  • 十五、小球反弹问题
  • 十六、猴子吃桃问题
  • 十七、求一个分数序列的和
  • 十八、求 1+2!+3!+...+20!的和
  • 十九、给你一个多位数 输出每一位数
  • 二十、回文数

十一、求最大公约数和最小公倍数

题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。程序分析:利用辗除法。

代码如下:

#include<stdio.h>
int main(void)
{int a,b;int m,n;//m存放最大公约数n存放最小公共倍数int temp=0;int i=0;scanf("%d %d",&a,&b);n=a*b;if(a>=b){temp=a%b;while(temp){a=b;b=temp;temp=a%b;}m=b;//最大公约数}else{temp=b%a;while(temp){b=a;a=temp;temp=b%a;}m=a;//最大公约数}n=n/m;//最小公倍数printf("%d %d\n",m,n);return 0;
}

十二、统计字符串数字,字母,符号的各个数量

题目:输入一行字符,分别统计出其中英文字母、数字和其它字符的个数。

代码如下:

#include<stdio.h>
#include<string.h>
int main(void)
{int i;int word=0;//统计字母数int number=0;//统计数字数int fuhao=0;//统计符号数char a[200];scanf("%s",a);for(i=0;i<strlen(a);i++){if( ( a[i]>='a' && a[i]<='z' ) || ( a[i]>='A' && a[i]<='Z' )){word++;continue;}if(a[i]>='0'&&a[i]<='9'){number++;continue;}fuhao++;}printf("字符串总长度为:%d\n",strlen(a));printf("共有%d个字母\n",word);printf("共有%d个数字\n",number);printf("共有%d个符号\n",fuhao);return 0;
}

十三、2+22+222+…

题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。
例如 2+22+222+2222+22222(此时 共有 5 个数相加),几个数相加有键盘控制。程序分析:关键是计算出每一项的值。

代码如下:

方法一:
#include<stdio.h>
void main()
{int a,n,count=1;long int sn=0,tn=0;printf("please inputaand n\n");scanf("%d,%d",&a,&n); printf("a=%d,n=%d\n",a,n); while(count<=n) { tn=tn+a;sn=sn+tn;a=a*10;++count; } printf("a+aa+...=%ld\n",sn);方法二:
#include<stdio.h>
int main(void)
{int a,n;int sum=0;int b=0;int i=0;printf("请输入a的值:");scanf("%d",&a);printf("请输入n的值:");scanf("%d",&n);for(i=0;i<n;i++){b=b*10;b=b+a;sum=sum+b;}printf("%d\n",sum);return 0;
}

十四、完数

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1+2+3.
编程 找出 1000 以内的所有完数。 程序分析:何判断素数有点像,不过它是要把因子加一块

代码如下:

#include<stdio.h>
void main()
{int i,j,k;for(i=1;i<=1000;i++){k=0;for(j=1;j<=i-1;j++)if(i%j==0)k+=j;if(k==i)printf("%d\n",i);}
}

十五、小球反弹问题

题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,
求它在 第 10次落地时,共经过多少米?第 10 次反弹多高?

代码如下:

#include<stdio.h>
void main(){ float sn=100.0,hn=sn/2;int n; for(n=2;n<=10;n++){ sn=sn+2*hn;/*第 n 次落地时共经过的米数*/ hn=hn/2;/*第 n 次反跳高度*/ } printf("thetotalof road is %f\n",sn); printf("thetenthis %fmeter\n",hn);}

十六、猴子吃桃问题

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。
到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断。

代码如下:

#include<stdio.h>
void main()
{ int day,x1,x2; day=9; x2=1;while(day>0){x1=(x2+1)*2;/*第一天的桃子数是第 2 天桃子数加 1 后的 2 倍*/x2=x1;day--; } printf("thetotalis %d\n",x1);
}

十七、求一个分数序列的和

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...
求出这个数列的前 20 项之和。 程序分析:请抓住分子与分母的变化规律。

代码如下:

#include<stdio.h>
void main(){ int n,t,number=20;float a=2,b=1,s=0; for(n=1;n<=number;n++){ s=s+a/b; t=a;a=a+b;b=t;/*这部分是程序的关键*/ } printf("sum is %9.6f\n",s);}

十八、求 1+2!+3!+…+20!的和

题目:求 1+2!+3!+...+20!的和
程序分析:先累乘再累加

代码如下:

#include<stdio.h>
void main()
{ float n,s=0,t=1;for(n=1;n<=20;n++){ t*=n; s+=t;} printf("1+2!+3!...+20!=%e\n",s);} 

十九、给你一个多位数 输出每一位数

题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,
二、逆序打印出各位数字。 程序分析:学会分解出每一位数。

代码如下:

#include<stdio.h>
void main( )
{ long a,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if(a!=0) printf("thereare5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);else if (b!=0)printf("there are 4,%ld %ld %ld %ld\n",e,d,c,b);else if (c!=0)printf(" thereare3,%ld %ld %ld\n",e,d,c); else if (d!=0)printf("there are 2,%ld %ld\n",e,d); else if (e!=0)printf(" thereare1,%ld\n",e);
}

二十、回文数

题目:一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位与千位相同。

代码如下:

#include<stdio.h>
void main( )
{ long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000; shi=x%100/10; ge=x%10;if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("this number is ahuiwen\n");elseprintf("this number is not ahuiwen\n");
}

C语言经典算法 1-10点击跳转

C语言经典算法 21-30点击跳转

C语言经典算法 11-20相关推荐

  1. C语言经典算法 21-30

    目录 21 一个有序的数组插入一个数 22 将一个数组逆序输出 23 报号 求最后是谁 24 写一个统计字符串长度的函数 25 八进制转换为十进制 26 判断一个素数能被几个 9 整除 27 输入一组 ...

  2. C语言经典算法 1-10

    目录 一.排列组合题 二.区间题 三.判断平方数相关 四.给你一个年月日判断是第几天 五.将3个数由小到大排序 六.九九乘法表 七.兔子繁殖数列 八.判断素数 九.水仙花数 十.因数分解 一.排列组合 ...

  3. c语言经典算法大全pdf,c语言经典算法100例pdf版.pdf

    c语言经典算法100例pdf版 C 语言经典算法 100 例 C 语言编程经典 100 例 A:[程序1] 题目:有1.2.3.4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程 ...

  4. 洗牌程序c语言原理,C语言经典算法 - 洗牌算法

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 说明: 洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1-N)打乱重新排列,只 ...

  5. C语言经典算法100道实战题

    [C语言经典算法100道实战题]适合具备C语言基础语法的同学学习,提高编写程序的逻辑思维能力和算法设计能力专门精心设计.100个经典的算法供大家练习及配套对应的录播视频.为我们今后学习其它的编程语言和 ...

  6. 猴子偷桃c语言编程软件,c语言经典算法——猴子偷桃问题

    题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...

  7. 老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)

    C语言经典算法 - 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下 ...

  8. 棋盘算法c语言程序,C语言经典算法 - 骑士走棋盘

    搜索热词 @H_301_0@下面是编程之家 jb51.cc 通过网络收集整理的代码片段.@H_301_0@编程之家小编现在分享给大家,也给大家做个参考. 说明骑士旅游(Knight tour)在十八世 ...

  9. c语言求寻找假币的次数,C语言经典算法 - 八枚银币问题

    C语言经典算法 - 八枚银币问题 说明现有八枚银币a b c d e f g h,已知其中一枚是假币,其重量不同于真币,但不知是较轻或 较重,如何使用天平以最少的比较次数,决定出哪枚是假币,并得知假币 ...

最新文章

  1. Spark详解(十一):Spark运行架构原理分析
  2. FreeRtos学习笔记(11)查找就绪任务中优先级最高任务原理刨析
  3. python打印所有花数_Python中使用while循环实现花式打印乘法表
  4. C# 获取Excel中的合并单元格
  5. Flex DataGrid 筛选实现
  6. python数据分析常用类库(1.1)
  7. windows server 2008中IIS7的功能模塊
  8. 哈佛博士主导的一桩勒索病毒离奇历史
  9. 【总结】Transformer结构及其9中变体汇总!
  10. 盛大“传奇”的网游启示录
  11. 打印机服务器属性纸张自动改,“打印机设置自定义纸张”的解决方案
  12. 第1章第25节:如何通过幻灯片母版统一管理相同类型的幻灯片1 [PowerPoint精美幻灯片实战教程]
  13. MATLAB--读取广播星历的导航文件
  14. visual studio code输入感叹号没有提示
  15. 360浏览器默认使用IE兼容模式解决办法
  16. 程序员如何求职找工作?这样分析就对了!
  17. Numpy库的三种矩阵乘法
  18. python连接MySQL数据库的示例代码
  19. 2012年4月语言榜
  20. 动态八卦图html,HTML绘制太极八卦图

热门文章

  1. php 数组元素快速去重
  2. 观察者模式--模拟3D彩票公众号
  3. 10分钟开始.Net Core
  4. 前端之JavaScript第一天学习(1)-JavaScript 简介
  5. 蹭课神器NABCD分析
  6. String 与StringBuilder
  7. js代码收集(1)_隐藏div、table间隔样式设置
  8. VS2008 Web Application和Web Site的区别_转载
  9. 上海公布公交卡成本 押金拟从30元调至20元
  10. 802.11n 中HT20 HT40的区别和信道划分