C++/Python简单练手题

前言

最近需要开始使用python,但是对python了解的并不多,于是先从很早之前刚学C++时写过的一些练手题开始,使用python来实现相同的功能,在温习python基础语法的同时,也一起来感受感受python的魅力

99乘法表

c++:

cpp 复制代码
#include<iostream>
int main()
{
	int i,j;
	for (i = 1; i <= 9; i++)
	{
		for (j = 1; j <= i; j++)
			std::cout <<j<<"*"<<i <<"=" << i * j << "  ";
		std::cout << '\n';
	}
}

python:

python 复制代码
for lie in range(1, 10):
    for hang in range(1, lie + 1):
        print(f"{hang}*{lie}={hang * lie}", end="  ")
    print()  # 打印空行

素数

c++

cpp 复制代码
#include<iostream>
int judge(int ,bool);
int main()
{
	int n;
	std::cout << "请输入数字n,判断其是否为素数" << '\n' << "n=";
	std::cin >> n;
	bool flage = true;
	if (judge(n,flage) == false) std::cout << n<<"不是素数";
	else if (judge(n,flage) == true) std::cout << n<<"是素数";
}
int judge(int n, bool flage)
{
	for (int i = 2; i <= sqrt(n); i++)
	{
		if ((n % i) == 0)
		{
			flage = false;
			break;
		}
	}
	return flage;
}

python:

python 复制代码
import math

n = int(input('请输入数字n,判断其是否为素数\nn='))
Is_SuShu = True
for i in range(2, int(math.sqrt(n))):
    if n % i == 0:
        Is_SuShu = False
        break
if Is_SuShu:
    print(f'{n}是素数')
else:
    print(f'{n}不是素数')

水仙花数

c++:

cpp 复制代码
#include<iostream>

//水仙花数:各位数字的立方相加等于其本身
//如果三位数的话,就是个位数的立方加上十位数的立方加上百位数的立方等于其本身的数,就叫水仙花数
int main()//求100到999内的所有水仙花数
{
	int i = 100;
	int ge, shi, bai;
	do 
	{
		ge = i % 10;
		shi = (i % 100) / 10;
		bai = (i % 1000) / 100;
		if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i)
			std::cout << i << '\n';
		i++;
	} while (i <= 999);
return 0;
}

python:

python 复制代码
for i in range(100, 999):
    bai_wei = int(i / 100 % 10)
    shi_wei = int(i / 10 % 10)
    ge_wei = int(i / 1 % 10)
    if bai_wei ** 3 + shi_wei ** 3 + ge_wei ** 3 == i:
        print(i)

括号匹配

cpp 复制代码
#include<iostream>
#include<string>
#include<stack>
static bool Is_righ(std::string In_str);

int main()
{
	std::string In_str;
	std::cout << "请输入一个表达式 :";//如:{{([])}}
	std::cin >> In_str;
	if (Is_righ(In_str)) {
		std::cout << "括号匹配";
	}
	else {
		std::cout << "括号不匹配";
	}
}
static bool Is_righ(std::string In_str) {
	std::stack<char> st;
	bool check = true;
	for (int i = 0; i < In_str.length(); i++) {
		switch (In_str[i]) {
		case '(': {
			st.push('('); break;
		}
		case '[': {
			st.push('['); break;
		}
		case '{': {
			st.push('{'); break;
		}

		case ')': {
			if (st.top() == '(')
				st.pop();
			else {
				check = false;
				break;
			}
			break;
		}
		case ']': {

			if (st.top() == '[')
				st.pop();
			else {
				check = false;
				break;
			}
			break;
		}
		case '}': {
			if (st.top() == '{')
				st.pop();
			else {
				check = false;
				break;
			}
			break;
		}
		default:break;
		}
	}
	if (st.empty() && check)
		return true;
	else
		return false;
}

python:

python 复制代码
st = []
In_str = input("请输入一个表达式:")  # 如{()[]}

Is_ok = True
for i in In_str:
    if i == '(':
        st.append('(')
    elif i == '[':
        st.append('[')
    elif i == '{':
        st.append('{')
    elif i == ')':
        if st[-1] == '(':
            st.pop()
        else:
            Is_ok = False
            break
    elif i == ']':
        if st[-1] == '[':
            st.pop()
        else:
            Is_ok = False
            break
    elif i == '}':
        if st[-1] == '{':
            st.pop()
        else:
            Is_ok = False
            break

if st is None and Is_ok:
    print('括号匹配', end="")
else:
    print('括号不匹配', end="")

python整体比C++要简介的多,当然使用python完成C++的练习题肯定也不能完全体现python的优势。

相关推荐
娅娅梨5 分钟前
C++ 错题本--not found for architecture x86_64 问题
开发语言·c++
兵哥工控9 分钟前
MFC工控项目实例二十九主对话框调用子对话框设定参数值
c++·mfc
我爱工作&工作love我17 分钟前
1435:【例题3】曲线 一本通 代替三分
c++·算法
秀儿还能再秀34 分钟前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
娃娃丢没有坏心思1 小时前
C++20 概念与约束(2)—— 初识概念与约束
c语言·c++·现代c++
lexusv8ls600h1 小时前
探索 C++20:C++ 的新纪元
c++·c++20
lexusv8ls600h1 小时前
C++20 中最优雅的那个小特性 - Ranges
c++·c++20
白-胖-子1 小时前
【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-统计数字
开发语言·c++·算法·蓝桥杯·等考·13级
好睡凯1 小时前
c++写一个死锁并且自己解锁
开发语言·c++·算法
阿_旭2 小时前
如何使用OpenCV和Python进行相机校准
python·opencv·相机校准·畸变校准