打印乘法口诀表
#include<stdio.h>
int main()
{
int row=0;//定义行号变量
int list=0;//定义列号变量
for(row=1;row<=9;row++)//行从第1行到第9行
{
for(list=1;list<=row;list++)//第row行的第1列到第row列
printf("%d*%d=%-2d ",row,list,row*list);//%-2d:左对齐十进制输出
printf("\n");//每打印完一行,就换行
}
return 0;
}
程序运行结果图:
输出100到200之间的素数
#include<iostream>
#include<cmath>
int main()
{
int j = 0, i = 0, count = 0;
for (i = 100; i < 200; i++)
{
for (j = 2; j < i; j++)
{
if (i%j == 0)//有一个数j能被i整除,所以i不是素数,判断下一个素数
break;
}
//到这里如果i=j说明除了1和i本身没有可以整除i的数字
if (i == j)
{
printf("%d\t", i);
count++;//统计素数的个数
}
}
printf("\n这个区间素数个数为:%d\n", count);
system("pause");
return 0;
}
- 优化一:
我们知道偶数肯定不是素数,所以for()循环可以从101开始,每次+2。 - 优化二:
我们知道如果一个数不是素数,那么它至少有四个约数:1、该数本身、约数1、约数2,并且约数1*约数2=该数;约数1和约数2一个不大于该数的1/2次方,一个不小于该数的1/2次方(就是该数开根号)。 - 优化后代码:
#include<iostream>
#include<cmath>
int main()
{
int j = 0, i = 0, count = 0;
for (i = 101; i < 200; i+=2)
{
for (j = 2; j < sqrt(i); j++)
{
if (i%j == 0)//有一个数j能被i整除,所以i不是素数,判断下一个素数
break;
}
//到这里如果i>sqrt(i)说明除了1和i本身没有可以整除i的数字
if (j>sqrt(i))
{
printf("%d\t", i);
count++;//统计素数的个数
}
}
printf("\n这个区间素数个数为:%d\n", count);
system("pause");
return 0;
}

四年一闰,百年不闰,四百年再闰
我们公历年份是4的倍数的那一年一般都是闰年,但公历年份是100的倍数时,必须是400的倍数才是闰年,否则不是闰年。
打印1000年到2000年之间的闰年
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int year=0;
int count=0;
for(year=1000;year<=2000;year++)
{
if((year%4==0&&year%100!=0)||(year%400==0))
printf("%d ",year);
count ++;
}
printf("\ncount=%d\n",count);
system("pause");
return 0;
}
程序运行结果图:
本文介绍了使用C/C++实现的三个经典算法案例:打印乘法口诀表、输出指定区间内的素数及判断闰年。通过这些示例,读者可以更好地理解基本的循环结构、条件判断以及数学函数的应用。
953

被折叠的 条评论
为什么被折叠?



