今天的作业有些多,但都不难:
1 输出9*9口诀。
2 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
3 判断101-200之间有多少个素数,并输出所有素数。
4 输入两个正整数m和n,求其最大公约数.
5 求1+2!+3!+…+10!的和
代码如下:
作业1:
#include<stdio.h>
int main()//作业1:输出9*9口诀
{
int i=0,j=0;
printf("9*9乘法表:\n");
for(i = 1; i <= 9; i++)//控制行数
for(j = 1 ; j <= i ; j++)//控制列数
{
printf("%d*%d=%-2d ", j , i , i*j);
if(i == j)
{
printf("\n");//控制换行
}
}
return 0;
}
作业2:
#include<stdio.h>
int fib(int n)//作业2:斐波那契数列
{
int a = 1, b = 1, c = 1;
for(int i = 3 ; i <= n ; i++)
{
c = a + b;
b = a ;
a = c ;
}
return c ;
}
int main()
{
int n = 0;
printf("请输入要查询的月份:");
scanf("%d",&n);
printf("%d月的兔子数为:%d\n ",n,fib(n));
}
作业3:
#include<stdio.h>
int main()//作业3:判断101~200之间有多少个素数,并输出所有素数
{
int i = 0 , j = 0 , tag = 0 ,r = 0;//i:被除数; j:除数; tag:素数的个数; r:余数;
printf("101~200之间的素数有:\n");
for(i = 101 ; i <= 200 ; i ++)//控制被除数从101~200
{
for(j = 2 ; j <= i/2 ; j ++)//控制除数从2~i/2
{
r = i % j ;
if(r == 0)//若余数为0,则说明该数能被j整除,则该数不是素数
{
break;
}
else if(j == i/2)
{
printf("%d ",i);
tag ++;
}
}
}
printf("\n共有 %d 个素数\n ",tag);
}
作业4:
#include<stdio.h>
int gcd(int a,int b)//作业4:输入两个正整数m和n,求它们的最大公约数
{
int r=a%b;
while(r)
{
a=b;
b=r;
r=a%b;
}
return b;
}
int main()
{
int a,b;//a,b为求最大公约数的两数
printf("请输入两个数:");
scanf("%d %d",&a,&b);
b=gcd(a,b);
printf("最大公约数:%d \n",b);
return 0;
}
作业5:
#include<stdio.h>
int fac(int a)//作业5:求和:1+2!+3!+......+10!
{
int i = 0;
for(i = a-1 ; i > 0 ; i --)
{
a *= i;
}
return a;
}
int main()
{
int j = 0,sum =0 ;
for(j = 1; j <=10; j ++)
{
j = fac(j);
sum += j;
}
printf("1+2!+3!+......+10!= %d\n",sum);
}