要找出1000以内的所有完全数,我们可以遍历从1到1000的每一个数,并对每个数计算它的真因数之和,然后判断这个和是否等于该数本身
#include <stdio.h>
#include <string.h>
//
//求1000以内的完数
//
int main(int argc, const char *argv[])
{
int a=0,b=0,he=0;
for(a=1;a<=999;a++)
{ he=0;
for(b=1;b<a;b++)//
{
if(a%b==0)//找出满足条件的因数
{
he+=b;//因数之和为he
}
}
if(he==a)//判断he是否为a
printf("%d\n",a);
}
return 0;
}
首先初始化了一个外部循环,用来迭代从1到1000的每一个数。对于每个数 a,我们使用内部循环来寻找它的所有真因数,并将这些真因数累加到变量 he 中。之后,我们检查 he 是否等于 a,如果相等且 a 不为0(因为0的真因数之和也是0,但通常不认为0是完全数),那么我们输出 a,表明它是一个完全数。
2.打印奇数金字塔
#include <stdio.h>
int main() {
int row;
int space;
// 遍历每一行
for (row = 1; row <= 4; row++) {
space = 4 - row; // 每行开始前的空格数量
// 打印开头的空格
while (space--) {
printf("& ");
}
// 打印星号和中间的空格
for (int col = 1; col <= (2 * row - 1); col++) {
if (col % 2 != 0) {
printf("*");
} else {
printf(" ");
}
}
// 换行到下一行
printf("\n");
}
return 0;
}
3.求和直到超过100:
#include <stdio.h>
int main() {
int num=1;int k=0;
while(num<=100){
num=num+1;
k=k+1;
}
printf("第%d次后和超过一百\n",k);
printf("当前的和为%d\n",num);
return 0;
}
4.斐波那契数列:
5.使用嵌套循环产生下列图案,要求用for嵌套循环
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA
#include <stdio.h>
int main() {
char letters[] = {'A', 'B', 'C', 'D', 'E', 'F'};
int n = sizeof(letters)/sizeof(letters[0]);
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
printf(" ");
}
for (char k = letters[0]; k >= letters[i]; k--) {
printf("%c", k);
}
printf("\n");
}
return 0;
}