1. 打印100~200之间的素数
作为素数的特点就是不被除了1和本身以外的数整除,可以思考设两个变量,用A/B,B∈[2,A),若不被整除,则为素数
#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
int main()
{
int i = 0;
for (i = 100;i <= 200;i++)
{
int j = 0;
for (j = 2;j < i;j++)
{
if (i%j == 0)
{
break;
}
}
//上述循环结束后,如果j=i,说明[2,i)之间的所有数据都不能被i整除,则i为素数
if (j == i)
{
printf("%d\n", i);
}
}
return 0;
}
当然这是最简单的计算方法,参考其他的博主计算方式,在[2,i/2]区间没有输可以整除就可以判断i是否为素数,用以减少没有意义的计算
但是我认为这个区间应该是[2,i/3],取2时就可以判断其是否能够被i/2整除,所以减少的计算可以更多,选取到i/3
#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
int main()
{
int i = 0;
for (i = 100;i <= 200;i++)
{
int j = 0;
for (j = 2;j <= i/3;j++)
{
if (i%j == 0)
{
break;
}
}
if (j > i/2)
{
printf("%d\n", i);
}
}
return 0;
}
2. 输出乘法口诀表
要实现乘法口诀表,最重要的是两个问题:行递增和列递增。其次就是打印出来要整洁,缩进一致,这里可以在打印的时候用到%-2d——打印时自动打印两位,不足两位时在右边补空格。
int main()
{
int i = 0;
int j = 0;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i ; j++)
{
printf("%d * %d = %-4d", i, j, i*j);
//打印时自动打4位,不够两位的在右边补空格
}
printf("\n");
//每打印一行就换一行
}
return 0;
}
这里由于打印出来的效果不好,所以将%-2d改为%-4d,打印出来的效果更佳,大家可以根据自己的需要修改这个数字的大小
3. 判断1000年---2000年之间的闰年
闰年:可以被4和400整除但不能被100整除的年份
核心问题就是一个年份在被整除后的结果同样要适用于另一个条件,这里考虑用if 和else if 语句进行编译
int main()
{
int i = 0;
int j = 4;
for (i = 1000; i <= 2000; i++)
{
if (i%j == 0 & i % 100 != 0)
//如果i能够被4整除但不能被100整除,那i就是闰年
printf("%d\n", i);
else if (i%400 == 0)
//如果不是上种情况,i能够被400整除,i也是闰年
printf("%d\n", i);
}
return 0;
}
这几个题的核心就是要把握循环和变量在代码中的应用