day22:素数(中)、杨辉三角(易)、矩阵问题(易)

素数

问题描述

明明的爸爸是一位数学家,明明受他爸爸的影响从小就喜欢数学,经常向他爸爸学习或请教数学问题。一天,明明问他爸爸什么是素数,明明的爸爸回答说:"首先,素数都是大于1的自然数;其次,素数是只能被1和其本身整除的数。例如'3'这个数,它只能被1和3这两个整数整除,因此'3'就是素数;但是'4'就不是素数,因为4除了能被1和4整除外,还能被2整除,因此'4'就不是一个素数。"明明对于爸爸的回答很满意,也很快明白了素数的定义。于是明明的爸爸就问明明:"明明,你现在知道了什么是素数,那我现在给你一个整数区间,你能告诉我在这个区间里,一共有多少个素数吗?" 例如:一个区间为[1,10],则在这个区间里一共有2、3、5、7,总共4个素数。 明明想了想,觉得这很简单,就说:"没问题。"于是明明爸爸就给了明明一个很大的区间,这下明明有点犯难了,由于区间太大,一个一个算过了会很花时间。聪明的明明想到了你,你总是乐于助人。明明想让你帮他写一个程序,用来计算在某一个整数区间内一共有多少个素数。 明明的问题可以归结为:给你一个整数区间,求出在这个区间里共有多少个素数。

个人总结

  1. 遍历区间,判断是否是素数。若是素数则输出,若不是素数则下一个
cpp 复制代码
#include <iostream>
//#include <vector>
//#include <string>
//#include <algorithm>
#include <cmath>
//#include <iomanip>
//#include <set>
//#include <sstream>
//#include <bits/stdc++.h> 
using namespace std;
bool issushu(int n){
	if(n < 2){
		return false;
	}
	if(n == 2){
		return true;
	}
	
	for(int i = 2; i <= sqrt(n); i++){
		if(n % i == 0){
			return false;
		}
	}
	
	return true;
}



int main(){
	int a,b;
	while(cin >> a >> b){
		int count = 0;
		for(int i = a; i <= b ; i++){
			if(issushu(i)){
				count ++;
			}
		}		
		
		cout << count << endl;
		
		
	}
	
	return 0;
}	

杨辉三角

问题描述

还记得中学时候学过的杨辉三角吗?

基本的特征是:

前提:端点的数为1.

  1. 每个数等于它上方两数之和。

  2. 每行数字左右对称,由1开始逐渐变大。

  3. 第n行的数字有n项。

你可以参考以下的图形:

个人总结

  1. 杨辉三角形在i == 0和i == j时为1

  2. 其余直接左上和正上相加即可

  3. 二维数组vector的定义要掌握

cpp 复制代码
vector <vector<int>> num(n,vector<int>(n,0))
//注意,不是vector <vector<int>> num(n,vector<int> num<n,0>)
cpp 复制代码
#include <iostream>
#include <vector>
//#include <string>
//#include <algorithm>
#include <cmath>
//#include <iomanip>
//#include <set>
//#include <sstream>
//#include <bits/stdc++.h> 
using namespace std;


int main(){
	int n;
	cin >> n;
	while(n--){
		int lenth;
		cin >> lenth;
		int num[20][20];
		for(int i = 0;i < lenth;i++){
			for(int j = 0; j < lenth;j++){
				if(j == 0 || (i == j)){
					num[i][j] = 1;
				}
				else{
					num[i][j] = num[i-1][j-1] + num[i-1][j];
				}
				
				
			}
		}
		int first = 1;
		for(int k = 0;k < lenth;k ++){
			for(int q = 0;q < lenth;q++){
				if(first){
					if(q < k){
					cout << num[k][q];
					}
					else if(q == k){
					cout << num[k][q] << endl;
					}
					first = 0;
				}
				else{
					if(q < k){
					cout << num[k][q] << " ";
					}
					else if(q == k){
					cout << num[k][q] << endl;
					}
				}
				
			}
		}
		
		cout << endl;
	}
	
	return 0;
}	

矩阵问题

问题描述

从键盘上输入一个整数N,按以下规律输出一个(2N+1)*(2N+1)的矩阵:

对角线的值为1,

上半三角区域值为2,

下半三角区域值为3,

左半三角区域的值为4,

右半三角区域的值为5。

个人总结

  1. 二维数组划分成四个板块和两个板块

两个板块:

正上下三角下标,上三角i<j,下三角一个i>j

副上下三角下标,上三角i+j < n,上三角i+j>n

正对角线i+j = n

副对角线i == j

cpp 复制代码
#include <iostream>
#include <vector>
//#include <string>
//#include <algorithm>
#include <cmath>
//#include <iomanip>
//#include <set>
//#include <sstream>
//#include <bits/stdc++.h> 
using namespace std;


int main(){
	int n;
	while(cin >> n){
		int num = 2*n + 1;
		int array[num][num];
		for(int i = 0; i < num ; i++){		
			for(int j = 0; j < num ; j++){
				if(i == j || (i + j == num - 1)){
					array[i][j] = 1;
				}
				else if(i < j){
					if(i + j > num - 1){
							array[i][j] = 5;
					}
					if(i + j < num - 1){
							array[i][j] = 2;
					}
					
				}
				else if(i > j){
					if(i + j > num - 1){
							array[i][j] = 3;
					}
					if(i + j < num - 1){
							array[i][j] = 4;
					}
				
				}
		
			}
		
		}
		
		for(int i = 0;i < num;i++){
			bool first = true;
			for(int j = 0; j < num ;j++){
				if(first){
					cout << array[i][j];
					first = false;
				}else{
					cout << " " <<array[i][j] ;
				}
			}
			cout << endl;
		}
		
		
		
		
	}
	
	
	
	
	return 0;
}	

计算机英语翻译

2.早期的计算机

模拟的计算机开始被建造于19世纪晚期。早期的模型通过多种rotating shafts (螺旋轴)和 gears(齿轮)计算。解决等式上数字的概值问题是特别困难的,在任何其他方式被这些机器(对于那些用其他方法无法解决的方程式,人们利用这类机器来求得其数值近似解)。Lord Kelvin创造了一个机器的整齐(潮汐)预测器,他可是一个特殊的分析计算器(实质上就是一台专用模拟计算机)。在第一次世界大战和第二次世界大战期间,机器的,和之后的电子分析计算机系统被用作torpedo(广泛应用于潜艇的鱼类航向预测,以及飞机的轰炸瞄准控制)课程分析器在submarines和作为bomsight控制器在aircraft中,还有一种系统被设计去预测密西西比河春天的洪水。

Analogue adj.模拟的

rotating shafts 螺旋轴

gears n.齿轮

approximation n.近似解

tide n.潮汐

单词打卡

相关推荐
寻寻觅觅☆15 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
偷吃的耗子16 小时前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn
化学在逃硬闯CS17 小时前
Leetcode1382. 将二叉搜索树变平衡
数据结构·算法
ceclar12317 小时前
C++使用format
开发语言·c++·算法
Gofarlic_OMS17 小时前
科学计算领域MATLAB许可证管理工具对比推荐
运维·开发语言·算法·matlab·自动化
夏鹏今天学习了吗17 小时前
【LeetCode热题100(100/100)】数据流的中位数
算法·leetcode·职场和发展
忙什么果18 小时前
上位机、下位机、FPGA、算法放在哪层合适?
算法·fpga开发
董董灿是个攻城狮18 小时前
AI 视觉连载4:YUV 的图像表示
算法
ArturiaZ19 小时前
【day24】
c++·算法·图论
大江东去浪淘尽千古风流人物19 小时前
【SLAM】Hydra-Foundations 层次化空间感知:机器人如何像人类一样理解3D环境
深度学习·算法·3d·机器人·概率论·slam