1.//斐波拉契数列。兔子繁殖问题:1,1,2,3,5,8,13......
/*
递推方法:由初始的已知条件开始,先计算出第(N-1)步的结果,
再利用已知的前(N-1)项结果,按递推公式(或遵照递推规则),推出第 N 步结果。
递推法是程序设计中最常用的方法之一,使用递推法必须有明确的递推初始值和递推规则(递推公式)。
*/
#include<stdio.h>
int main()
{
int n,m;
int m1, m2;
int i;
scanf("%d", &n);
if (n == 1 || n == 2)
{
printf("1\n");
}
else
{
m2 = m = 1;
//递推的三项为:m1,m2,m
m1 = m2; m2 = m;
for (i = 3; i <= n; i++)
{
m = m1 + m2;
m1 = m2;
m2 = m;
}
printf("%d\n", m);
}
}
2.//用逗号运算输出下列字符串。a z b y c x d w e v f u g t h s i r j q k p l o m n
#include<stdio.h>
int main()
{
char c1, c2;
for (c1 = 'a', c2 = 'z'; c1 < c2; c1++, c2--)
{
printf("%c %c ", c1, c2);
}
printf("\n");
return 0;
}
3.//输入一个 >=0 的整数,要求以相反的顺序输出该数。例如:输入12345,则输出为54321
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
while (n > 0)
{
printf("%d", n % 10);
n /= 10;
}
return 0;
}
4.//从键盘输入任意的字符,按下列规则进行分类计数。
/*
第一类 ’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’
第二类 ’ + ’, ’ - ’, ’* ’, ’ / ’, ’% ’, ’ = ’
第三类 其它字符
当输入字符 ’\’ 时先计数然后停止接收输入。
*/
#include<stdio.h>
int main()
{
int numOfNumber=0,numOfCal=0,numOfElse=0;
char c;
while ((c = getchar()) != '\\')
{
//if方法
if (c == '+' || c == '-' || c == '*' || c == '/' || c == '%' || c == '=')
{
numOfCal++;
}
else if (c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9')
{
numOfNumber++;
}
else
{
numOfElse++;
}
//switch方法
/*
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
numOfNumber++; break;
case '+':case'-':case'*':case'/':case'%':case'=':
numOfCal++; break;
default:numOfElse++;
}*/
}
printf("numOfNumber:%d,numOfCal:%d,numOfElse:%d\n", numOfNumber, numOfCal, numOfElse);
return 0;
}
5.//求 555555 的约数中最大的三位数是多少?
#include<stdio.h>
int main()
{
int n;//假设n是最大的那个三位数
int i = 999;
for (i; i >99; i--)
{
if (555555 % i == 0)
{
n = i;
break;
}
}
printf("%d\n", n);
return 0;
}