2018.10.25 第3次作業 迴圈1
阿新 • • 發佈:2018-12-08
2018.10.25 第3次作業
以下內容僅供娛樂,歡迎隨時探討,請多指教!
附加題:1.今有一對兔子,當他們長到第三個月時具有生育能力,從此每月必生一對小兔子,小兔子也和他的父母一樣,問第20個月有多少兔子?
#include"stdio.h"
int main()
{
int month,a=1,b=1,c=2,i;
printf("input month\n");
scanf("%d",&month);
if(month < 3)
printf("%d",a);
else{
for(i=3 ; i <= month; i++)
{
a=b,b=c,c=b+a;
}
printf("%d\n",c);
}
return 0;
}
2.今有一隻小牛,當他第四年時具有生育能力,從此每年必生一頭小牛,他的小牛跟他一樣,問第20年有多少頭牛?
#include"stdio.h"
int main()
{
int year,a=1,b=1,c=1,d=2,i;
printf("input year\n");
scanf("%d",&year);
if(year < 4)
printf ("%d",a);
else{
for(i=3 ; i <= year; i++)
{
a=b,b=c,c=d,d=c+a;
}
printf("%d",d);
}
return 0;
}
這是正式的題目:
1、輸入一個數n,求出n!。
#include"stdio.h"
int main()
{
int n,i,s=1;
printf("輸入一個數n\n");
scanf("%d",&n);
for(i=1 ; i <= n ; i++)
{
s*=i;
}
printf("%d\n",s);
return 0;
}
2、求
#include"stdio.h"
int main()
{
int i,n,s=1,sum=0;
//求5次n!總和
for(n=1 ;n <= 5;n ++)
{
//求n!
for(i=1 ; i <= n; i++)
{
s*=i;
}
sum+=s;s=1;
}
printf("%d\n",sum);
return 0;
}
3、求
#include"stdio.h"
int main()
{
int i,k,s1=0,s2=0,sum=0;
//求n的和
for(i=1;i <= 10;i++)
{
s1+=i;
}
//求n*n的和
for(k=1;k < 10+1;k++)
{
s2+=k*k;
}
sum=s1+s2;
printf("%d",sum);
return 0;
}
4、從鍵盤上輸入一個整數,逆序輸出各個位數上的數字。
#include"stdio.h"
int main()
{
int n,number;
printf("input number!\n");
scanf("%d",&number);
if(0 == number)
printf("0\n");
else{
while(number != 0)
{ //分解輸出
n=number%10;
number/=10;
printf("%d ",n);
}
}
return 0;
}
5、編寫程式,輸出能被7整除且個位數為1的三位數,並統計其個數。(要求採用continue語句和不用continue語句的兩種解法)
不用continue語句
#include"stdio.h"
int main()
{
int i,count=0;
for(i=1000;i < 10000;i++)
{
if(i%7 == 0 && i%10 == 1)
{
count++;
printf("%d\n",i);
}
}
printf("\n個數是%d\n",count);
return 0;
}
用continue語句
#include"stdio.h"
int main()
{
int i,count=0;
for(i=1000;i < 10000;i++)
{
if(i%7 == 0 && i%10 == 1);
else continue;
printf("%d\n",i);
count++;
}
printf("\n個數是%d\n",count);
return 0;
}
6、從500開始,求被3、5、7除餘數均為2的前50個數。
#include"stdio.h"
int main()
{
int i,count=0;
for(i=500; ;i++)
{
if(i%7 == 2 && i%3 == 2 && i%5 == 2)
{
count++;
printf("%d\n",i);
if(count == 50)break;
}
}
return 0;
}
7、輸入一個數,判斷是否為素數。(只能被1和自身整除的數)
#include"math.h"
#include"stdio.h"
int main()
{
int n,i,t=0;
printf("input n\n");
scanf("%d",&n);
if(n < 4) printf("no\n");
else
{
for(i=2;i <= sqrt(n);i++)
{
if(n%i == 0) t=1;
}
if(1 == t) printf("no\n");
else printf("yes\n");
}
return 0;
}
8、編寫程式,輸入兩個正整數,求出他們的最大公約數和最小公倍數(輾轉相除法和窮舉法兩種)。
窮舉法
#include"stdio.h"
int main()
{
int i,n1,n2;
printf("input two numbers\n");
scanf("%d%d",&n1,&n2);
for(i=n1;i > 1;i--)
{
if(n1%i == 0 && n2%i == 0)
{
printf("最大公約數是%d\n",i);
break;
}
}
printf("最小公倍數是%d\n",n1*n2/i);
return 0;
}
輾轉相除法
#include"stdio.h"
int main()
{
int n1,n2,a,b,c;
printf("input two numbers\n");
scanf("%d%d",&n1,&n2);
a=n1,b=n2;
if(a < b)c=a,a=b,b=c;
//輾轉相除法
while(b != 0)
{
a=a%b,b=b%a;
}
printf("最大公約數是%d\n",a);
printf("最小公倍數是%d\n",n1*n2/a);
return 0;
}
9、輸入一批正整數,求出其最大值,輸入以0結束。
#include"stdio.h"
int main()
{
int n,t;
printf("input numbers\n");
scanf("%d",&n);
if(0 == n)printf("0\n");
else
{
t=n;
while(n != 0)
{
scanf("%d",&n);
t=(n>t?n:t);
}
}
printf("max=%d\n",t);
return 0;
}
10、有一數列:2/1,3/2,5/3,8/5,…求出這個數列的前10項之和。
#include"stdio.h"
int main()
{
int i;
double a1=1,a2=2,a3,b1=2,b2=3,b3,sum=0;
sum=b1/a1+b2/a2;
for(i=3;i<=10;i++)
{
a3=a1+a2,a1=a2,a2=a3;
b3=b1+b2,b1=b2,b2=b3;
sum+=b3/a3;
}
printf("sum=%.2lf\n",sum);
return 0;
}
11、列印500以內的“水仙花數”。“水仙花數”是一個三位數,其各位數立方和等於該數本身。
#include"stdio.h"
#include"math.h"
int main()
{
int i,s=0,t;
for(i=100;i <= 500 ;i++)
{
t=i;
while(t>0)
{
s+=pow(t%10,3);t/=10;
}
if(s == i)
printf("%d\n",i);
s=0;
}
return 0;
}