1古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始)。程序源代码:// Created by www.runoob.com on 15/11/9.// Copyright © 2015年 菜鸟教程. All rights reserved.//
#include
int main(){
int f1=1,f2=1,i; for(i=1;i<=20;i++)
{
printf('%12d%12d',f1,f2); if(i%2==0) printf('\n'); f1=f1+f2; f2=f1+f2; }
return 0;}以上实例输出结果为: 1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
1597 2584 4181 6765
10946 17711 28657 46368
75025 121393 196418 317811
514229 832040 1346269 2178309
3524578 5702887 9227465 14930352
24157817 39088169 63245986 1
2将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。实例// Created by www.runoob.com on 15/11/9.// Copyright © 2015年 菜鸟教程. All rights reserved.//
#includeint main(){
int n,i; printf('请输入整数:'); scanf('%d',&n); printf('%d=',n); for(i=2;i<=n;i++)
{
while(n%i==0)
{
printf('%d',i); n/=i; if(n!=1) printf('*'); }
}
printf('\n'); return 0;}
3一个数如果恰好等于它的因子之和,这个数就称为'完数'。例如6=1+2+3.编程找出1000以内的所有完数。#include#define N 1000int main(){
int i,j,k,n,sum;
int a[256];
for(i=2;i<=N;i++)
{
sum=a[0]=1;
k=0;
for(j=2;j<=(i/2);j++)
{
if(i%j==0)
{
sum+=j;
a[++k]=j;
}
}
if(i==sum)
{
printf('%d=%d',i,a[0]);
for(n=1;n<=k;n++)
printf('+%d',a[n]);
printf('\n');
}
}
return 0;}以上实例输出结果为:6=1+2+328=1+2+4+7+14496=1+2+4+8+16+31+62+124+248