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

相关推荐
梧桐树04292 小时前
python常用内建模块:collections
python
Dream_Snowar2 小时前
速通Python 第三节
开发语言·python
唐诺2 小时前
几种广泛使用的 C++ 编译器
c++·编译器
冷眼看人间恩怨3 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
红龙创客3 小时前
某狐畅游24校招-C++开发岗笔试(单选题)
开发语言·c++
蓝天星空3 小时前
Python调用open ai接口
人工智能·python
Lenyiin3 小时前
第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ
c++·算法·leetcode·周赛·lenyiin
jasmine s3 小时前
Pandas
开发语言·python
郭wes代码3 小时前
Cmd命令大全(万字详细版)
python·算法·小程序
leaf_leaves_leaf4 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python