作业
1、求 1-----1000以内的完数 示例:
28 1 +4 +7 +14 +2 =28
完数:完美的数 除去本身以外的因子和等于本身
6 1+2+3 = 6
#include <stdio.h>
int main(int argc, char const *argv[])
{
int sum;
for (int i = 1; i <= 1000; i++)
{
sum = 0;
for (int j = 1; j < i; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (sum == i) //判断完数
{
printf("%d\n", i);
}
}
return 0;
}
2、打印奇数金字塔
& & & *
& & * * *
& * * * * *
* * * * * * *
#include <stdio.h>
int main(int argc, char const *argv[])
{
int n;
printf("请输入金字塔层数:");
scanf("%d", &n);
n++;
for (int i = 1; i < n; i++)
{
for (int j = n - 1 - i; j > 0; j--)
{
printf("&");
}
for (int j = 1; j <= i; j++)
{
printf("*");
}
for (int j = 1; j < i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
3、求和直到超过100: 编写程序,计算从1开始递增的整数之和,直到和首次超过100时停止并输出当前的和以及累加了多少个数。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int n = 0;
int flag = 0;
for (int i = 1; i <= 100; i++)
{
int sum;
sum += i;
n++;
if (sum > 100)
{
flag = 1;
}
if (flag == 1)
{
printf("累加了%d个数,和为%d\n", n, sum);
break;
}
}
return 0;
}
4.斐波那契数列: 编写程序,输出斐波那契数列的前n项(斐波那契数列指数列中的每一项都是前两项的和,第一和第二项是1)。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int n = 0; // 1 1 2 3 5 8 13 21
int a = 1, b = 1;
printf("请输入要输出斐波那契数列的项数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
if (i <= 2)
{
printf("1 ");
}
else
{
int result = a + b;
a = b;
b = result;
printf("%d ", result);
}
}
printf("\n");
}
5、使用嵌套循环产生下列图案,要求用for嵌套循环
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA
#include<stdio.h>
int main(int argc, char const *argv[])
{
int n=0;
printf("请输入金字塔层数:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int letter='A'+n-1;
for(int j=1;j<i;j++)
{
printf("_");
}
for(int c=1;c<=i;c++)
{
printf("%c",(char)letter);
letter--;
}
printf("\n");
}
return 0;
}
6、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
#include<stdio.h>
int main(int argc, char const *argv[])
{
int sum=1;
for (int i=1;i<10;i++)
{
sum=(sum+1)*2;
}
printf("第一天摘了%d个桃子\n",sum);
return 0;
}