用C语言实现:打印100~200之间的素数;输出乘法口诀表;判断1000年-2000年之间的闰年
2019-03-17 21:47
337 查看
用C语言实现:打印100~200之间的素数;输出乘法口诀表;判断1000年-2000年之间的闰年
hello,小K来提交代码了,通过这几天的学习,会了一些简单的编程题,并且一步一步优化算法,简单的算法其实大有学问,希望大家可以掌握这些程序以及思路。1. 打印100~200之间的素数
素数:在大于1的自然数中,除了1和它本身以外不再有其他因数。
方法1:设100-200间的这个数是i,用i去分别除以2~(i-1)间的每一个数#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int i = 0; int count = 0;//计数,记录素数的个数 for(i = 101;i <= 200;i++) { int j = 0; for(j = 2;j < i;j++) { if 4000 (i % j == 0) { break;//跳出当前for语句,避免重复操作 } } if(i == j) //该条件代表没有整除 { count++; printf("%d\n",i); } } printf("count == %d\n",count); return 0; }但此方法过于繁琐,执行速度慢,因此,我们重新思考一下,优化此程序。 方法2:i不可能整除比i/2更大的数
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int i = 0; int count = 0; for(i = 101;i <= 200;i++) { int j = 0; for(j = 2;j <= i/2;j++) { if(i % j == 0) { break; } } if(j > i/2) { count++; printf("%d\n",i); } } printf("count == %d\n",count); return 0; }方法3:相比于i/2,用t来储存i的平方根会更加优化这个算法。这种算法需要引入新的头函数#include <math.h>和新的开方函数sqrt()。
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include <math.h> int main() { int i = 0; int count = 0; for(i = 101;i <= 200;i++) { int j = 0; for(j = 2;j <= sqrt((double)i);j++) { if(i % j == 0) { break; } } if(j > sqrt((double)i)) { count++; printf("%d\n",i); } } printf("count == %d\n",count); return 0; }方法4:偶数不可能是素数,因此使变量i每次加2.
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include <math.h> int main() { int i = 0; int count = 0; for(i = 101;i <= 200; i+=2) { int j = 0; for(j = 2;j <= sqrt((double)i);j++) { if(i % j == 0) { break; } } if(j > sqrt((double)i)) { count++; printf("%d\n",i); } } printf("count == %d\n",count); return 0; }
2. 输出乘法口诀表
(1)键盘输入n来输出n*n乘法口诀表#include<stdio.h> int main() { int i = 0; int n = 0; scanf("%d", &n); for (i = 1; i <= n; i++) { int j = 0; for (j = 1; j <= n; j++) { printf("%d*%d=%-2d", i, j, i*j);//%-2d表示向左对齐,%2d表示向右对齐 } printf("\n"); } return 0; }(2)打印9*9乘法口诀表
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int i = 0; int j = 0; for(i=1;i>=9;i++) { for(j=1;j>=i;j++) { printf("%dx%d=%d\t",j,i,i*j);//\t为转义字符,表示水平制表 } printf("\n"); } return 0; }
3.判断1000年-2000年之间的闰年
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int year = 0; for(year = 1000;year <= 2000;year++) { if(year % 4 == 0) { if(year % 100 != 0) { printf("%d\n",year); } } if(year % 400 == 0) { printf("%d\n",year); } } return 0; }优化算法
#include<stdio.h> int main() { int year=0; for (year = 1000; year <= 2000; year++) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { printf("%d\n", year); } } return 0; }
相关文章推荐
- 打印100~200 之间的素数,输出乘法口诀表,判断1000年---2000年之间的闰年
- 简单的算法题,包括1.打印100——200之间的的素数2.输出乘法口诀表3.判断1000年——2000年之间的闰年,给出完整代码
- 1. 打印100~200 之间的素数 2. 输出乘法口诀表 3. 判断1000年---2000年之间的闰年
- 1.打印100~200之间的素数/2.判断1000年-2000年之间的闰年
- C语言实现打印100~200 之间的素数
- 【C】打印100-200间素数,输出乘法口诀表,闰年的判断,求十个整数中最大值
- C语言实现 判断1000年---2000年之间的闰年
- 用c语言实现输出100-200之间的素数
- C语言 判断1000年---2000年之间的闰年,并输出闰年
- C语言如何判断一个数是素数,输出100-200之间的全部素数。
- 判断101-200之间有多少个素数,并输出所有素数(python实现)
- C语言打印100 ——200之间的素数
- C语言求解素数(质数)的优化:打印100-200之间的素数
- 打印某个区间之间的素数,并输出素数的个数。如100-200
- C语言实例6—判断101-200之间有多少个素数,并输出所有素数。
- 【c语言】将100~200之间的素数输出
- c语言:打印100到200之间的素数
- 用c语言编写打印出100~200 之间的素数。
- C语言之判断100~200之间的素数(质数)
- 【C语言】判断1000年---2000年之间的闰年