C语言小测2
- 现在小瓜想通过台阶走上平台,最底层(小瓜所在的层)编号为1,最顶层编号为n。由于小瓜的腿比较短,他一次只能向上走1级或者2级台阶。小瓜想知道他有多少种方法走上平台,你能帮帮他吗?
#include <stdio.h>
int find(int n)
{ if(n==0) return 0;
if(n==1) return 1;
if(n==2) return 2;
if(n>2) return find(n-1)+find(n-2);
}
int main(void) {
int n,step;
scanf("%d",&n);
step=find(n-1);
printf("%d\n",step);
return 0;
}
- 给出两个整数a和b,倒序输出a到b之间(包括a和b)的所有整数。
#include<stdio.h>
int main()
{
int a,b,i,c;
scanf("%d%d",&a,&b);
c=b;
for(i=0;i<c-a+1;i++){
printf("%d\n",b);
--b;
}
return 0;
}
- 有一列数是:4/7,7/11,11/18,18/29,29/47,47/76……请找出这个数列的规律,编写程序计算并输出这个数列的第 N 项(要求是分数形式),并计算这个数列的前 N 项和(结果四舍五入保留两位小数)。
#include<stdio.h>
int main()
{
int n;
float i,m=0,x,y,z=0;
x=4;
y=7;
scanf("%d",&n);
m+=x/y;
for(i=2;i<=n;i++){
z=x;
x=y;
y=z+x;
m+=x/y;
}
printf("%.0f/%.0f\n%.2f\n",x,y,m);
return 0;
}
- 读入一个四位数abcd,请你输出他的“反写”的值。
比如读入1015,输出5101;
读入4310,输出134(不能有前导零)
不合法的四位数,如234, 0123, 12412不会作为读入数据。
#include <stdio.h>
int main() {
int n,m;
int i=0;
int sum=0;
scanf("%d",&m);
n=m;
while(m!=0){
i=m%10;
m=m/10;
sum = sum*10+i;
}
printf("%d\n",sum);
return 0;
}
- 数字回文的判定,如果一个数字从左往右看和从右往左看是一样的,那么我们称
这个数字是回文数字,例如121,454454, 67876,5,22都是回文数字,而223,
56,10就不是回文数字。现在读入一个数字X,请你写程序判断一下它是不是回文数
字。
#include<stdio.h>
int main()
{
int x,sum=0,n,i=0;
scanf("%d",&x);
n=x;
while(n!=0){
i=n%10;
n=n/10;
sum = sum*10+i;
}
if(x==sum)
printf("yes\n");
else
printf("no\n");
return 0;
}
- n!=1 * 2 * 3 * … * n
现在请你求1/1!+1/2!+…+1/n! 的值
#include<stdio.h>
int main()
{
int n,i;
float sum=0,m=1;
scanf("%d",&n);
for(i=1;i<=n;i++){
m=m*i;
sum+=1/m;
}
printf("%.10f\n",sum);
return 0;
}
- 读入N,求出1…N的范围内所有2或3或5的倍数一共有多少个?
#include <stdio.h>
int main() {
int n,i,m=0;
scanf("%d",&n);
for(i=1;i<=n;i++){
if(i%2==0||i%3==0||i%5==0)
++m;
}
printf("%d\n",m);
return 0;
}