一、走台阶走法问题
分析:当台阶个数为 1 走法:一种
2 走法:2种的(要么一次走一个,要么一次走两个)
。。。
n个台阶 fib(n-1)+fib(n-2)
两种情况:第一次走1个台阶,剩下n-1个台阶 即fib(n-1)种
第一次走两个台阶,剩下n-2个台阶 即fib(n-2)种
程序:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
fib(int n)
{
if (n <= 2)
return n;
else
return fib(n - 1) + fib(n - 2);
}
int main()
{
int i = 0;
//输入
scanf("%d",&i);
int ret = fib(i);
//打印
printf("%d", ret);
return 0;
}
以10为例子,运行结果:
附上牛客网该题链接。读者可自行学习:
二、变种水仙花题-Lily number
分析:
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for (i = 10000; i <= 99999; i++)
{
int j = 0;
int sum = 0;
int n = 0;
for (j = 0; j <= 5; j++)
{
n = (int)pow(10, j);
sum = sum + ((i % n) * (i / n));
}
if (sum == i)
{
printf("%d ", sum);
}
}
return 0;
}
运行结果
牛客网链接
三、三角形判断
这一道偏容易,只需要知道三角形的特点还有等腰等边三角形分别有什特点即可
代码:
#include <stdio.h>
int main()
{
int a,b,c=0;
while((scanf("%d %d %d",&a,&b,&c)==3))
{
if(((a+b)>c)&&((a+c)>b)&&((b+c)>a))
{
if((a==b)&&(b==c))
{
printf("Equilateral triangle!\n");
}
else if(((a==b)&&a!=c)||((a==c)&&a!=b)||((b==c)&&b!=a))
{
printf("Isosceles triangle!\n");
}
else
printf("Ordinary triangle!\n");
}
else
printf("Not a triangle!\n");
}
return 0;
}
运行结果
牛客网链接
好啦!就先写到这里啦!下次再更新!