(1.求1000以内的完数)
1.求 1-----1000以内的完数 示例: 28 1 +4 +7 +14 +2 =28 完数:完美的数 除去本身以外的因子和等于本身 6 1+2+3 = 6
代码演示:
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a,b,sum;
//对变量进行定义,a为被除数,b为除数,sum为其除本身外所有因子的和
for(a=2;a<1000;a++)
{
sum = 0;
//换被除数时,对sum进行格式化处理,以便能正确计算后续值
for(b=1;b<a;b++)
{
if (a%b==0)//判断其因数是哪些
{
sum+=b;//对因数进行累加求和
}
}
if(sum==a)//判断其是否是完数(出去本身外的因子之和等于本身)
printf("%d\n",a);//满足则输出数数
}
printf(" \n ");
return 0;
}
求质数等可以类比求。
结果:ubuntu@ubuntu:assignment$ gcc z1.c
ubuntu@ubuntu:assignment$ ./a.out
6
28
496
2.
2.打印奇数金字塔
& & & *
& & * * *
& * * * * *
* * * * * * *
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a,m=1,n=1;//a为输入的行数
scanf("%d",&a);
for(int i=1;i<=a;i++)
{
for(int c=a-1;c>=i;c--)
{
printf("& ");
}
for(int d=1;d<=(2*i-1);d++)
{
printf("* ");
// n=n+2;
}
printf("\n\n");
}
printf("\n");
}
结果:
ubuntu@ubuntu:assignment$ gcc z2.c
ubuntu@ubuntu:assignment$ ./a.out
4
& & & *
& & * * *
& * * * * *
* * * * * * *
3.3.求和直到超过100:
编写程序,计算从1开始递增的整数之和,直到和首次超过100时停止并输出当前的和以及累加了多少个数。
。
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a=1,b=0,sum=0;
while(sum<=100)
{
sum=sum+a;
a++;
b+=1;
}
printf("%d %d\n",sum,b);
return 0;
}
结果:
ubuntu@ubuntu:assignment$ gcc z3.c
ubuntu@ubuntu:assignment$ ./a.out
105 14
4.斐波那契数列: 编写程序,输出斐波那契数列的前n项(斐波那契数列指数列中的每一项都是前两项的和,第一和第二项是1)
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a,b=1,c=1;
printf("请输入你想要的斐波那契数列多少项\n");
scanf("%d",&a);
if(a==1)
{
printf("%d\t",b);
}
else if (a==2)
{
printf("%d\t",b);
printf("%d\t",c);
}
else if (a>=3&&a%2==0)
{
printf("%d\t",b);
printf("%d\t",c);
for(int i=1;i<=a/2-1;i++)
{
b=b+c;
printf("%d\t",b);
c=c+b;
printf("%d\t",c);
}
}
else if (a>=3&&a%2==1)
{
int e=0;
printf("%d\t",b);
for(int i=1;i<a;i++)
{
printf("%d\t",c);
e=b+c;
b=c;
c=e;
}
}
else
{
printf("你的输入有误");
}
return 0;
}
结果:
ubuntu@ubuntu:assignment$ gcc z4.c
ubuntu@ubuntu:assignment$ ./a.out
请输入你想要的斐波那契数列多少项
6
1 1 2 3 5 8
请输入你想要的斐波那契数列多少项
10
1 1 2 3 5 8 13 21 34 55
ubuntu@ubuntu:assignment$ gcc z4.c
ubuntu@ubuntu:assignment$ ./a.out
请输入你想要的斐波那契数列多少项
17
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
5.使用嵌套循环产生下列图案,要求用for嵌套循环
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a,b,c;
for ( a=0;a<=5;a++)
{
int d='F';
for ( b=1;b<=a;b++)
{
printf("_");
}
for ( c=0;c<=a;c++)
{
printf("%c",d);
d=d-1;
}
printf("\n");
}
printf("\n");
return 0;
}
结果:
ubuntu@ubuntu:assignment$ gcc z5.c
ubuntu@ubuntu:assignment$ ./a.out
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA
6.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a,b=1;
for (a=1;a<10;a++)
{
b=(b+1)*2;
}
printf("%d\n",b);
return 0;
}
结果:
ubuntu@ubuntu:assignment$ gcc z6.c
ubuntu@ubuntu:assignment$ ./a.out
1534