概述
1..问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....(斐波那契数列)
2.程序源代码:
#include<stdio.h>
Voidmain()
{
longf1,f2;
inti;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf("ld ld",f1,f2);
if(i%2==0) printf("n");//分两行打印
f1=f1+f2;
f2=f1+f2;//前两个数相加等于后面那个数
}
}
2.大小可变的菱形图案
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
int i,j,k,m,n,size;
printf("input size:");
scanf("%d",size);//输入你想要的菱形的大小,即行数
if(size<=0||size%2==0)
{
printf("the size is error!n");
exit(-1);//不成菱形
}
for(i=1;i<=size;i++)
{
n=(i<=(size+1)/2)?i:size-i+1;//如果打印前半行,那么n=i;否则n=size-i+1;
n=2*n-1;//
m=(size-n)/2+15;//菱形规律
for(k=1;k<=m;k++)
printf(" ");//打印空格和打印*结合起来。
for(j=1;j<=n;j++)
printf("*");
printf("n");
}
}
3.编程将递增数列10,20,30,40,50,60,70,80,90,100保存到数组中,再从键盘输入一个整数,将它插入到数列中,使之仍为一个递增数列。
#include<stdio.h>
void main(){
int a[11]={10,20,30,40,50,60,70,80,90,100};
int b,i,p=10;
printf("请输入要插入的数n");
scanf("%d",&b);//初始化
for(i=0;i<10;i++){
if(b<a[i]){
p=i;
break;
}//输入的数和10个数分别比较,然后把插入位置找出来。
}
for(i=9;i>=p;i--){
a[i+1]=a[i];
}
a[p]=b;//把b插入到原数组中
for(i=0;i<11;i++){
printf("%dt",a[i]);
}//重新打印这个新数组
printf("n");//
}
4.下面程序的功能是计算1-3+5-7+ …… -99+101的值。
main()
{int i,t=1,s=0;
for(i=1;i<=101;i+=2)
{ t=t*i;//t就是用来调节正负号的。后边的t/i和这里的t*i相互抵消。、、
s=s+t;//
t=t/i*(-1);
}
printf("%dn",s);
}
5.两个正整数m和n,求其最大公约数和最小公倍数.
main()
{longm,n,i=1,j,s;
scanf("%ld,%ld",&m,&n);
for(;i<=m&&i<=n;i++)
{if(m%i==0&&n%i==0)s=i;}
if(m>=n)j=m;
elsej=n;
for(;!(j%m==0&&j%n==0);j++); //从最大的那个数开始向上自加,直到找到可以同时除以m和n的数之后才跳出循环。
printf("s=%ld,j=%ldn",s,j);
}
#include<stdio.h>
void main()
{
inta,b,m,c,t;
printf("请输入两个数:");
scanf("%d,%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)//辗转相除法
{
a=b;
b=c;
c=a%b;
}
printf("最大公约数是%d:",b);
printf("最小公倍数是%d:",m/b);
}
转载于:https://my.oschina.net/shengmingqijiquan/blog/663033
最后
以上就是独特镜子为你收集整理的每日5题之8.7的全部内容,希望文章能够帮你解决每日5题之8.7所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复