c语言返回一个数的任意倍数,几道基础C语言题
1.递归求阶乘
分析:n!=1*2*...*n
那么我们有两种方法
递归
思路:根据阶乘的规律n!=n*(n-1)!
定义函数f(x),使函数返回x*f(x-1)的值,直到n=1。经过函数调用本身求出结果。
代码:
#include
int cnt(int n);//调用声明函数
int main()
{
int n;
scanf("%d",&n);
printf("%d",cnt(n));
return 0;
}
int cnt(int n)//定义声明函数
{
if(n>0)
n*=cnt(n-1);
else n=1;
return n;
}
循环
思路:由于n!=n*(n-1)*...*1,则从a=1开始,+1之后与a相乘。
代码:
#include
int main()
{
int n;
scanf("%d",&n);
int a=1;//a要初始化为1
for(int i=1;i<=n;i++) //注意i应从1取到n,因此判断条件为<=
a=a*i;
printf("%d",a);
return 0;
}
2.分制转换
题目:给出一个百分制成绩,要求输出成绩等级‘A’(90分及90分以上),‘B’(80到89分),’C’(70到79分),’D’(60到69分),’E’(60分以下)。
输入格式
百分制成绩,整数,例如,100,89
输出格式
等级制成绩,例如A,B,C等等
eg85 B
分析:这道题很简单,在我复习重写的时候发现比以前写的简洁了不少,因为用到了映射的思想,使分数由5类简化为三类:100分,60到99分,60分以下。
代码:
#include
int main()
{
int s;
scanf("%d",&s);
s/=10;//成绩映射为0-10
if(s==10)//10(满分)的情况
printf("A");
else if(s>=6)//将6到9转换为字母等级
printf("%c",('E'-s+5));
else printf("E");//小于6(不及格)的情况
return 0;
}
3.判断是否为素数(<1000)
分析:素数为只能被1和自己整除的数,因此我们可以通过循环,从2开始遍历比数小的所有数。
优化:
2的倍数非素数,因此先判断是否为2的倍数。
判断某个数是否为因数时,可以一起决定多个数是否为因数。
比如判断11是否为素数,要从2到9判断,而2非因数,同时可以确定6到10也非因数,因为2乘这些数大于11,因此不可能有比2大的数与6到10相乘得11.
代码:
#include
int main()
{
int n;
int r=1; //用r记录是否为素数。1为素数0非素数
scanf("%d",&n);
//大于2的偶数非素数
if((n/2>1)&&(n%2==0))
r=0;
//判断是否为素数
for(int i=3;r==1&&i*i<=n;i+=2) //更新直接+2,因到只用判断奇数
{
if(n%i==0)
{
r=0;
break; //跳出for循环
}
}
//通过r的值(是否为素数)进行输出
if(r==0)
printf("NO");
else
printf("YES");
return 0;
}
4.今天是第几天
题目:输入三个整数为年月日 ,输出是那一年的第几天
eg:输入:1990 9 20 输出:263
#include
int main()
{
int y,m,d;
scanf("%d%d%d",&y,&m,&d);
int r=d; //结果初始化为天数d
for(int i=1;i
{
switch(i)
{
case 2:
r+=28;
break;
case 4:
case 6:
case 9:
case 11:
r+=30;
break;
default://31天的月份较多放在default中
r+=31;
}
}
//判断平年闰年,若为闰年2月有29天,再加1
if((y%400==0)||((y%4==0)&&(y%100!=0)))
r++;
printf("%d",r);
return 0;
}
5.按要求输出
题目:写一程序,输入为三行,第一行为整数a、第二行为字符c、第三行为整数b。(0
输出共四行。第一行依次输出a,b,c,三个值之间用一个空格分隔;第二依次输出a+b,a-b,a* b,a/b,a%b的值,每个值之间用一个空格分隔;第三行输出a和b的比率(浮点数,精确到小数点后两位);第四行输出a和b的百分比率(浮点数,精确到小数点后两位)。具体格式见输出样例。
输入样例
12
b
234
输出样例
12 234 b
246 -222 2808 0 12
The ratio of 12 versus 234 is 0.05.
The ratio of 12 / 234 is 5.13%.
代码:
#include
int main()
{
//输出控制字符:加\;输出%:%%
long long a,b; //整型出现乘法:用lld
char c;
scanf("%lld",&a);
scanf("\n%c",&c);
//scanf:1.按格式要求。2.输入非c时自动忽略前导空白符号,不用加\n。
//3.输入为c时会读入空白符号->如何解决上一行的换行符残留:加\n或用getchar
scanf("%lld",&b);
printf("%lld %lld %c\n",a,b,c);
printf("%lld %lld %lld %lld %lld\n",a+b,a-b,a*b,a/b,a%b);
printf("The ratio of %lld versus %lld is %.2lf.\n",a,b,(double)a/b);
printf("The ratio of %lld / %lld is %.2lf%%.",a,b,100*(double)a/b);
return 0;
}
6.按要求输出
题目:一程序,输入依次为一个整数a、一个浮点数f、一个整数b。(-10000
c语言返回一个数的任意倍数,几道基础C语言题相关推荐
- c语言填空三个数找中间大小,计算机文化基础复习题及答案(精华)
第一章计算机基础 一.单选题 1.在微机中,bit的中文定义是(A ) A.二进制位B.双字C.字节D.字 2.在微机中,作为一个整体存储,传送和处理的数据信息单位是(C ) A.二进制位B.机器字C ...
- c语言输出每个数占10列宽,杭州师范大学C语言试题第1套介绍.doc
一.判断题 第1题:函数调用可以出现在表达式中 对 第2题:若有定义一维数组int a[4]的首地址为0078H,则a[1]元素的首地址是0079H(设int型数据占两个字节).错 第3题:在标准C语 ...
- c语言求一个数的位数不用循环_LeetCode基础算法题第181篇:将数字减少为零的步骤数...
技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完.目前我选择C语言,Python和Java作为实现语言,因为这三种语 ...
- c语言判断一个数是否为质数的n次方,C语言中 输入一个数 判断这个数是否为3的N次方 求代码...
C语言中 输入一个数 判断这个数是否为3的N次方 求代码 答案:4 信息版本:手机版 解决时间 2019-10-03 18:55 已解决 2019-10-03 01:54 C语言中 输入一个数 判断 ...
- c语言对n个数选择排序_选择排序法 -- C语言
算法原理 直接选择排序的基本思想:n个记录的直接选择排序可经过 n-1 趟直接选择排序得到有序结果. 初始状态:无序区为 A[1...n],有序区为空. 第 1 趟排序:在无序区 A[1...n] 中 ...
- c语言编程显示单月日历,任意年月日历输出-题解(C语言代码)
本题目主要解决如下几个问题: **1.该月的1号是星期几: 2.该月份有几天: 3.2月份天数的特殊处理: 4.输出格式问题.** 我们来一次解决如上问题: ###### 问题1:该月的1号是星期几 ...
- 用C语言求三个数的最大值与排序
用C语言求三个数的最大值与排序 1.用C语言求三个数的最大值 语法:if语句 代码如下: #include<stdio.h> int main() {int a, b, c;printf( ...
- c语言求三个数最值非函数,C语言编程:从键盘任意输入三个数,编写求其最大值、最小值的函数,用指针作函数参数实现。...
www.shufadashi.com防采集. C语言编程:从键盘任意输入三个数,编写求其最大值.最小值的函数,用指针作函数参数实现.. #includevoid maxfunction(int*);v ...
- 用正则表达式匹配3的任意倍数
正则表达式能匹配3的任意倍数?(注意是任意倍数) ,我曾经也很震惊,但确实可以.我5年多前练习正则表达式,在Regex Golf这个正则表达式测试网站上发现了这个题,当时完全没有任何头绪,于是我在知乎 ...
最新文章
- 轻量级目标检测大合集
- Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)
- String 转 const char*
- 颜值当道,画风为王——桌游美术风格漫谈
- php环境搭建sqlserver,ThinkPHP5.0/5.1对接SQLServer数据库(宝塔环境)
- cup过高是什么意思_做青和焙火有什么关系?
- leetcode771. 宝石与石头 py永远的神!
- 彻底理解jdbc为什么用反射创建驱动程序对象
- HTML5手机开发——滚动和惯性缓动
- 鸿蒙系统适配机型_余承东:华为手机鸿蒙系统体验比安卓更好,主流应用已完成适配...
- 原型对象prototype与继承
- 基于先验LiDAR点云地图的单目VIO定位
- 转 markdown编写规则、语法
- kindle电子书使用calibre进行解除DRM导出本地
- 4、RH850 F1 定时器OSTM功能和配置
- 计算机主机hdmi接口是什么意思,hdmi接口有什么用,教您电脑hdmi接口有什么用
- 【比较】2022 程式语言排名与分析,该学习哪一种程式语言?
- oracle把中文转换成ascii,js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换XX函数代码...
- [单片机框架][bsp层][N32G4FR][bsp_flash] flash配置和使用
- 机器学习中的数学——拟牛顿法(Quasi-Newton Methods)
热门文章
- Python这几个内置函数简直是屌爆了!!!
- xftp连接海康摄像头报错:sftp子系统申请已拒绝 请确保ssh连接的sftp子系统设置有效
- numpy矩阵计算GPU加速库:cupy
- 【car】购买新能源电动汽车的几个注意事项
- 【植物大战僵尸2】算法 笔记
- 【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
- Future和CompletableFuture的区别和对比,以及Future主要的四个缺点——不能回调会阻塞、批量任务处理彼此依赖会阻塞、不能多个任务级联执行、得不到最先完成的任务
- Boring data structure problem 模拟-双端队列
- 学计算机应该了解什么软件,大学计算机软件业生应该学什么.doc
- 在EXT中向弹窗传值或者对象