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的优势。

相关推荐
Java&Develop9 分钟前
DeltaFStation 宝塔 Linux 部署教程
python
Augustzero9 分钟前
为什么线程不能说睡就睡?看懂等待与唤醒机制
c++·后端
小柯南敲键盘14 分钟前
跨境电商图片翻译工具推荐:批量AI翻译+视频字幕+智能抠图
人工智能·python·音视频
程序员与背包客_CoderZ26 分钟前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
北斗落凡尘35 分钟前
LangGraph 入门实战(8)--绑定工具
python·langchain
ningmengjing_42 分钟前
MCP 通讯方式与实现指南
python·agent·mcp
淼澄研学1 小时前
Kimi API黑产倒卖技术解析与Python合规接入指南
开发语言·网络·python
冻柠檬飞冰走茶1 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
wangchen_01 小时前
C++正则表达式
开发语言·c++·正则表达式
何以解忧,唯有..1 小时前
Python 元组(tuple)详解:使用、遍历与排序
开发语言·python