算数计算竖式

编程求以下竖式中各字母对应的数字:

在这里插入图片描述
这儿是用的循环嵌套解决的这道题。
其中每个字母代表一个数字,且不同数字对应不同字母。编程求出这些数字并且打出这个数字的算术计算竖式

#include <iostream>
#include <stdio.h>
using namespace std;
/*  S	E	N	D
  +	M	O	R	E
─────────────
M	O	N	E	Y*/
void vertical(int S, int E, int N, int D, int M, int O, int R, int Y)//定义一个函数
{
	cout << "  " << S << E << N << D << endl;
	cout << "+ " << M << O << R << E << endl;
	cout << "─────────" << endl;
	cout << "=" << M << O << N << E << Y << endl;
}
int main()
{
	int S, E, N, D, M, O, R, Y;
	int number1, number2, number3;
	for (S = 1; S <= 9; S++)
	{
		for (E = 0; E <= 9; E++)
		{
			if (S == E)//判断S不等于E
				continue;
			for (N = 0; N <= 9; N++)
			{
				if ((S == N) || (E == N))//判断N不等于S,E
					continue;
				for (D = 0; D <= 9; D++)
				{
					if ((D == N) || (D == E) || (D == S))//判断D不等于N,E,S
						continue;
					for (M = 1; M <= 9; M++)
					{
						if ((M == D) || (M == N) || (M == E) || (M == S))//判断M不等于D,N,E,S
							continue;
						for (O = 0; O <= 9; O++)
						{
							if ((O == M) || (O == D) || (O == N) || (O == E) || (O == S))判断O不等于M,D,N,E,S
								continue;
							for (R = 0; R <= 9; R++)
							{
								if ((R == O) || (R == M) || (R == D) || (R == N) || (R == E) || (R == S))//判断R不等于O,M,D,N,E,S
									continue;
								number1 = (S * 1000) + (E * 100) + (N * 10) + D;
								number2 = (M * 1000) + (O * 100) + (R * 10) + E;
								Y = ((D + E) % 10);
								if ((Y == S) || (Y == E) || (Y == N) || (Y == D) || (Y == M) || (Y == O) || (Y == R))//判断Y不等于S,E,N,D,M,O,R
									continue;
								number3 = (M * 10000) + (O * 1000) + (N * 100) + (E * 10) + Y;
								if (number3 == number1 + number2)
								{
									vertical(S, E, N, D, M, O, R, Y);//调用函数vertical
								}
							}
						}
					}
				}
			}
		}
	}
	system("pause");
	return 0;
}

输出的结果
在这里插入图片描述

你也可以用数组更高效的完成循环。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值