作业1:
输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入
#include <stdio.h>
int main()
{
printf("请输入起始值和终止值:");
int start, end;
scanf(" %d%d", &start, &end);
for (; start <= end; start++)
{
if (start % 3 == 0 || start % 5 == 0)
{
printf("%d\n", start);
}
}
}
作业2:
输出斐波那契前20项的值
斐波那契数列:1 1 2 3 5 8 13 。。。
#include <stdio.h>
int main()
{
int cnt;
int Fibonacci[20] = { 1, 1 };
for (cnt = 0; cnt < 20; cnt++) //0到19,共20个数
{
if (cnt > 1) //cnt从第三个开始,即cnt == 2时,需要先计算再输出
Fibonacci[cnt] = Fibonacci[cnt - 2] + Fibonacci[cnt - 1];
printf("%d ", Fibonacci[cnt]);
}
printf("\n");
return 0;
}
作业3
输入一个数,判断该数是否为素数(只能被1和其本身整除的数)
#include <stdio.h>
int main()
{
int num, divided_cnt, cnt; //输入的数 对 能被除了1和本身以外的数整除的数 计数 循环计数
printf("请输入一个数:");
scanf(" %d", &num);
for (cnt = 2, divided_cnt = 0; cnt < num; cnt++)
{
if (num % cnt == 0)
{
divided_cnt++;
}
}
(num > 1 && divided_cnt == 0) ? printf("是素数\n") : printf("不是素数\n");
//加上num > 1是因为素数的定义中,素数必须大于1
return 0;
}
作业4:
输入一个数,判断该数是否为完美数(所有真因子之和等于其本身,例如:6 = 1+2+3)
#include <stdio.h>
int main()
{
int num, sum, cnt; 输入的数 对所有的真因子求和 循环计数
printf("请输入一个数:");
scanf(" %d", &num);
for (cnt = 1, sum = 0; cnt < num; cnt++)
{
if (num % cnt == 0)
{
sum += cnt;
}
}
sum == num ? printf("是完美数\n") : printf("不是完美数\n");
return 0;
}
作业5:
输出起始值到终止值之间所有的素数
#include <stdio.h>
int main()
{
int num, divided_cnt, cnt; //输入的数 对 能被除了1和本身以外的数整除的数 计数 循环计数
int start, end; //start除了起始值的作用,还有循环计数的作用
printf("请输入起始值和终止值:");
scanf(" %d%d", &start, &end);
getchar(); //清除回车
for (; start <= end; start++)
{
//cnt(也就是因子)从2开始, divided_cnt对除了1与自身的因子计数, 将开始数字start(也是用于遍历的数字)赋值给num
//当真因子(cnt)计数到小于终止值时
for (cnt = 2, divided_cnt = 0, num = start; cnt < start; cnt++)
{
if (num % cnt == 0)
{
divided_cnt++; //cnt是num除了1与自身的因子,因子数量+1
}
}
(num > 1 && divided_cnt == 0) ? printf("%d ", num) : printf("");
//加上num > 1是因为素数的定义中,素数必须大于1
}
return 0;
}
作业6:
输出起始值到终止值之间所有的完美数
#include <stdio.h>
int main()
{
int num, sum, cnt; 输入的数 对所有的真因子求和 循环计数
int start, end; //start除了起始值的作用,还有循环计数的作用
printf("请输入起始值和终止值:");
scanf(" %d%d", &start, &end);
getchar(); //清除回车
for (; start <= end; start++)
{
//cnt(也就是真因子)从1开始, sum对所有的真因子求和, 将开始数字(也是用于遍历的数字)start赋值给num
//当真因子(cnt)计数到小于终止值时
for (cnt = 1, sum = 0, num = start; cnt < start; cnt++)
{
if (num % cnt == 0) //cnt是真因子
{
sum += cnt; //真因子之和加上新的真因子
}
}
sum == num ? printf("%d ", num) : printf("");
}
return 0;
}