【day33】

题目:

有一天,明明正在做作业,发现了一组很有趣的数字,例如1、11、313等等。他发现这些数字都是左右对称的,即不论你把这些数字从左读到右还是从右读到左,读出来的数字都是一样的。于是明明就把这个发现告诉了他爸爸。明明的爸爸是一名数学家,对此类型数字早有研究。他对明明说:"这些是回文数,是一种特殊的数字,即这些数字的左右两边是对称的。例如:11左右两边对称,313左右也是对称的。" 明明觉得这很有趣,接着问他爸爸还有什么和这类回文数有关的有趣的东西。明明的爸爸就说:"你把这些回文数转换成二进制数,看看是不是也符合回文数的规则。"明明发现1的二进制数也是1,符合回文数的规则;11的二进制数是1011,不符合回文数的规则;33的回文数是100001,符合回文数的规则。明明就回答爸爸说:"1和33的二进制数符合回文数的规则,11的二进制数则不符合回文数的规则。" 明明爸爸很满意明明的回答,又给了明明很多十进制数,让他判断在这些数中哪些数既是十进制回文数又是二进制回文数。明明起先做起来很有意思,但是时间一长就失去了兴趣。他想请你帮个忙,帮他写一个程序,用来判断一个数,它的十进制数是回文数,且它的二进制数也是回文数。

明明的问题可以归结为:给你一个整数(十进制),判断该整数的十进制数和它的二进制数是否全为回文数。

cpp 复制代码
#include<iostream>
using namespace std;
bool huiwen97(int n) {//判断回文
	int a = 0;
	int t = n;
	while (n > 0) {
		a = a * 10 + n % 10;
		n /= 10;
	}
	return a == t ? true : false;
}
int to_bi97(int n) {//转为二进制
	int num = 0, i = 1;
	while (n > 0) {
		num = i*(n % 2) + num;
		n /= 2;
		i *= 10;
	} 
	return num;
}
int main() {
	int n;
	while (cin >> n) {
		if (huiwen97(n) && huiwen97(to_bi97(n))) {
			cout << "Yes" << endl;
		}
		else {
			cout << "No" << endl;
		}
	}
	return 0;
}

题目:

明明读小学的时候,不喜欢数学,尤其是不喜欢做加法,一做加法就头疼,这样导致明明长大后数学依然不好,而且对数字产生了抵触心理。可是不巧的是,明明进了一家会计公司,每天都要计算很多数据,在这些计算中加法运算居多,而且这些加法不只是是两个数之间的加法,更有多个数的连加。 例如:1+2+3的正确答案是6。 这给明明造成了很大的麻烦。你是明明的好朋友,看到明明如此痛苦,就产生了帮助明明的想法。你想帮明明写一个程序,这个程序能计算一串正整数的连加,从而帮助明明摆脱数字的困扰。 明明的问题可以归结为:给你一串正整数的连加表达式,完成这个表达式的计算。

cpp 复制代码
#include<iostream>
using namespace std;
int main() {
	string a;
	while (cin >> a) {
		char op = '+';
		int k = 0, sum = 0;
		for (char s : a) {
			if (s >= '0' && s <= '9') {
				k = k * 10 + (int)s - 48;
			}
			else{//与前面有道题一样的处理
				if (op == '+') {
					sum += k;
				}
				else if (op == '-') {
					sum -= k;
				}
				op = s;
				k = 0;
			}
		}
		if (op == '+') {//处理最后一则运算
			sum += k;
		}
		else if (op == '-') {
			sum -= k;
		}
		cout << sum << endl;
	}
	return 0;
}

题目:

序列是在数学世界中一种非常有趣的数字现象,它通过某一规则来产生数字,使数字变得有趣、变幻无穷。很多数学家对序列这种事物产生了浓厚的兴趣,花了很多时间对其进行研究,明明就是其中的一位。一天,他又在研究一种新的序列产生规则,该序列的规则如下:

1) 第1轮,写出两个1,即11;

2) 第2轮,在它们中间插入2,成为121;

3) 第3轮,在上面数中每两个相邻的和为3的数之间插入3,成为13231;

4) 以此类推下去,第n轮,在第n-1轮的数字的基础上,每两个相邻的和为n的数之间插入n。

明明根据这个规则开始构造序列。开始还觉得容易,但是越到后面,明明发现构造序列的计算量越来越大,计算难度也越来越高,计算速度也越来越慢。于是,明明就求助于你这位程序设计专家,能否帮他写一个程序,构造出序列的前9项,然后当明明需要知道序列中的哪一项的时,你就把那一项的数字告诉明明。

明明的问题可以归结为:根据题目描述中所描述的序列产生规则构造序列的前9项,然后告诉你一个正整数n,要求你输出序列的第n项。

cpp 复制代码
#include<iostream>
#include<string>
using namespace std;
string run99(int n,string a) {
	if (n == 1)return "11";
	int len = a.size();
	string res;
	for (int i = 0; i < len-1; i++) {//小于len-1防止后面i+1过界
		res += a[i];
		if ((a[i] - '0') + (a[i + 1] - '0') == n) {//看相邻数字之和是否等于n
			res += (char)(n + '0');//是的话就将n加在res后面
		}
	}
	res += a[len - 1];//补齐最后一位数字
	return res;
}
int main() {
	int n;
	while (cin >> n) {
		string a = "";
		for (int i = 1; i <= n; i++) {
			a = run99(i, a);
		}
		cout << a << endl;
	}
	return 0;
}

Translation:

A computer will solve problems in exactly the way it is programmed to, without regard to efficiency, alternativesolutions, possible shortcuts, or possible errors in the code.Computer programs that learn and adapt are part of the emerging field of artificial intelligence and machine learning. Artificial intelligence-based products generally fall into twomajor categories: rule-based systems and pattern recognitionsystems. Rule-based systems attempt to represent the rules used by human experts and tend to be expensive to develop. Pattern-based systems use data about a problem to generateconclusions. Examples of pattern-based systems include voicerecognition, font recognition, translation and the emerging fieldof on-line marketing.

计算机会完全以程序设计好的方式去解决问题,不考虑效率、可替代的解决方式、可能的捷径、或在代码中可能存在的错误。计算机程序学习和适应是目前人工智能和机器学习的一部分。以人工智能为基础的产品普遍有两个主要的类别:基于规则的系统和模式识别系统。基于规则的系统倾向于展示人类专家使用的规则,很难发展。基于模式的系统利用数据对问题生成结论。基于模式的系统示例包括语音识别、字体识别、翻译以及新兴的在线营销领域。

Computer science is the study of the theory, experimentation,and engineering that form the basis for the design and use ofcomputers---devices that automatically process information.Computer science traces its roots to work done by English mathematician Charles Babbage, who first proposed a programmable mechanical calculator in 1837. Until the advent of electronic digital computers in the 1940s, computer science wasnot generally distinguished as being separate from mathematicsand engineering. Since then it has sprouted numerous branchesof research that are unique to the discipline.

计算机科学是对理论、实验和工程的研究,这些构成了计算机(即自动处理信息的设备)设计与使用的基础。计算机科学的起源可以追溯到英国数学家查尔斯·巴贝奇的工作,他于1837年首次提出了可编程机械计算器的构想。直到20世纪40年代电子数字计算机出现之前,计算机科学通常并未被视为独立于数学和工程学的学科。从那以后,它催生出了众多该学科独有的研究分支。

Early work in the field of computer science during the late 1940sand early 1950s focused on automating the process of makingcalculations for use in science and engineering. Scientists and engineers developed theoretical models of computation that enabled them to analyze how efficient different approaches werein performing various calculations. Computer science overlapped considerably during this time with the branch of mathematics known as numerical analysis, which examines the accuracy and precision of calculations.

20世纪40年代末至50年代初,计算机科学领域的早期研究主要集中在实现科学和工程领域计算过程的自动化。科学家和工程师们开发了计算的理论模型,这使他们能够分析不同方法在执行各种计算时的效率。在此期间,计算机科学与被称为数值分析的数学分支有很大的重叠,数值分析主要研究计算的准确性和精确性。


相关推荐
Drifter_yh2 小时前
「JVM」Java 垃圾回收机制全解析:回收算法、分代流转与 G1 收集器底层拆解
java·jvm·算法
载数而行5202 小时前
算法系列3之拓扑排序
c语言·数据结构·c++·算法·排序算法
!停2 小时前
数据结构排序算法—插入排序
数据结构·算法·排序算法
s砚山s2 小时前
代码随想录刷题——二叉树篇(二十一)
算法
谁不学习揍谁!2 小时前
基于python大数据机器学习旅游数据分析可视化推荐系统(完整系统+开发文档+部署教程+文档等资料)
大数据·python·算法·机器学习·数据分析·旅游·数据可视化
yyjtx2 小时前
DHU上机打卡D28
开发语言·c++·算法
programhelp_2 小时前
Snowflake OA 2026真题解析|3道Hard Coding全拆解,附DP+双指针实战思路
算法
专注VB编程开发20年2 小时前
C#,VB.NET GPU计算和调试
算法·gpu
Protein_zmm2 小时前
【算法基础】位运算、离散化、区间合并
java·算法·spring