母牛的故事
题目要求:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
根据题目要求得出:
在第一年应该是两头牛,但是根据题目所给出的答案可总结以下表格:
年份 1 2 3 4 5 6 7 8 9
母牛数量 1 2 3 4 6 9 13 19 28
则可以总结出规律:f(n)=f(n-1)+f(n-3)n>3的情况
联想:斐波那契数列的公式:fn=fn-1+fn-2(n>2)
#include<stdio.h>
int hanshu(int n)
{
if(n<=3)
return n+1;
else
return hanshu(n-1)+hanshu(n-3);
}
int main()
{
int n;
int sum;
while(scanf("%d",&n)!=0)
{
sum=hanshu(n);
printf("%d\n",sum);
}
}
数字的处理与判断
题目要求:给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
位数问题
浮点型也是可以表示整形。所以就可以得到所输入的数字串的长度。
分别输出每位数
第一种是用取余的方法进行实现题目要求,根据之前得到的字符串长度然后除10的倍数
第二种是用数组进行存储,然后从数组的第一位开始输出
注意输出的格式问题
逆输出
可以是取余,也可以是数组逆输出。
#include<stdio.h>
#include<string.h>
int main()
{
char a[10];
int i,n;
scanf("%s",a);//&a[10] &a
n=strlen(a);
printf("%d\n",n);
for(i=0;i<n;i++)
{
printf("%c ",a[i]);
}
printf("\n");
for(i=n-1;i>=0;i--)
{
printf("%c",a[i]);
}
}
字符串分类统计
题目要求:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
int n,i;
gets(str);
n=strlen(str);
int a,b,c,d;//注意初始值的赋值0
for(i=0;i<n;i++)
{
if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
a++;
else if(str[i]>='0'&&str[i]<='9')
b++;
else if(str[i]==' ')//==若写作=结果出错,最后两项相加
c++;
else
d++;
}
printf("%d %d %d %d",a,b,c,d);
}
Sn求和
题目要求:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。
#include<stdio.h>
int main()
{
int n,i,sum=2;
int Sn=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
Sn=Sn+sum;
sum=sum*10+2;
}
printf("%d",Sn);
}
水仙花数
题目要求:打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1 ^ 3+5^ 3+3^3。
#include<stdio.h>
int main()
{
int a,b,c;
int hundred,ten,one;
for(a=100;a<1000;a++)
{
one=a%10;
b=a/10;
ten=b%10;
c=b/10;
hundred=c%10;
if(a==hundred*hundred*hundred+ten*ten*ten+one*one*one)
{
printf("%d\n",a);
}
}
}
迭代法
题目要求:用迭代法求 平方根
求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数
#include"stdio.h"
#include"math.h" //包含fabs()函数的头文件,别忘了加
int main()
{
int a;
double x=1.0,x1;
printf("请输入需要计算的数\n");
scanf("%d",&a);
do
{
x1=x;
x=(x1+a/x1)/2;
}
while(fabs(x-x1)>1E-5); //fabs()绝对值函数
printf("%lf",x);
return 0;
}
注意:C语言求绝对值的函数为abs( x )与fbs( x ),abs( x )包含于stdlib.h,且两者均包含于math头文件之下。