第二章 暴力求解(枚举法)

第一节 小学奥数题—程序求解

观察下面的加法算式:

      祥 瑞 生 辉

  +   三 羊 献 瑞

三 羊 生 瑞 气

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字,且“三”字不为 0 。

请计算所有的汉字代表什么意思。

这是一道经典的小学奥数题,相信有不少同学曾经遇到过类似的题目,如果单纯的笔算将花费大量的时间,而暴力求解则可以利用计算机快速得出结果。而且不需要思考任何数字的可能值。

给出代码,大家自己体会:

#include<stdio.h>
int main() {
int a,b,c,d,e,f,g,h; // 由a-h分别代表汉字:祥 瑞 生 辉 三 羊 献 气
for(a=0;a<10;a++) {
for(b=0;b<10;b++) {
for(c=0;c<10;c++) {
for(d=0;d<10;d++) {
for(e=1;e<10;e++) { // e 代表汉字 “三 ”,其不为 0 ,所以初始化为 1
for(f=0;f<10;f++) {
for(g=0;g<10;g++) {
for(h=0;h<10;h++) {
int n = a*1000+b*100+c*10+d;
int m = e*1000+f*100+g*10+b;
int k = e*10000+f*1000+c*100+b*10+h;
int l = n+m;
if(k==l && a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h && b!=c && b!=d && b!=e && b!=f && b!=g && b!=h && c!=d && c!=e && c!=f && c!=g && c!=h && d!=e && d!=f && d!=g && d!=h && e!=f && e!=g && e!=h && f!=g && f!=h && g!=h) {
printf("%d,%d,%d\n",n,m,k);
printf("祥=%d,瑞=%d,生=%d,辉=%d,三=%d,羊=%d,献=%d,气=%d\n",a,b,c,d,e,f,g,h);
}}}}}}}}}
return 0;
}

暴力题很烦,只给出一道例题,以后如果有好的题,再写出来吧。

附:诗

浣溪沙

——纳兰性德

谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳。

被酒莫惊春睡重,赌书消得泼茶香,当时只道是寻常。

以上。

和我一起从0学算法(C语言版)(三)的更多相关文章

  1. 和我一起从0学算法(C语言版)(一)

    第一章 排序 第一节 简化版桶排法 友情提示:此文章分享给所有小白,大牛请绕路! 生活中很多地方需要使用排序,价格的由低到高.距离的由远及近等,都是排序问题的体现.如果排序量较少,依靠个人能力很容易实 ...

  2. 和我一起从0学算法(C语言版)(四)

    第三章 搜索 深度优先搜索与宽度优先搜索 定义 深度优先搜索(DFS) 过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次. 宽度优先搜索(BFS) 不考虑结果的可能位 ...

  3. 和我一起从0学算法(C语言版)(二)

    第一章 排序 第三节 快速排序 快速排序是最常用的排序方法.快排运用的递归方法很有意思.掌握了这种排序方法可以在将来学习递归时更快入门.只是快排的思路与之前的排序方法相比较为复杂,再加担心上我的表达能 ...

  4. 教孩子学编程 python语言版PDF高清完整版免费下载|百度云盘|Python入门

    百度云盘:教孩子学编程 python语言版PDF高清完整版免费下载 提取码:mnma 内容简介 本书属于no starch的经典系列之一,英文版在美国受到读者欢迎.本书全彩印刷,寓教于乐,易于学习:读 ...

  5. libnode 0.4.0 发布,C++ 语言版的 Node.js

    libnode 0.4.0 支持 Windows ,提升了性能,libuv 更新到 0.10.17 版本,libj 更新到 0.8.2 版本. libnode 是 C++ 语言版的 Node.js,和 ...

  6. 快速排序算法C语言版

    快速排序(Quicksort)是对冒泡排序的一种改进.  快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比 ...

  7. 数据结构1:数据结构与算法C语言版分析概述

    本节开始将带领大家系统地学习数据结构,作为一门计算机专业大二学生的必修课程,该课程面对的目标人群为初步具备基本编程能力和编程思想的程序员(大一接触了 C 语言或者 C++).通过系统地学习数据结构,可 ...

  8. 《数据结构与算法(C语言版)》严蔚敏 | 第五章 建立二叉树,并完成三/四种遍历算法

    PS:所有的代码示例使用的都是这个图 2019-10-29 利用p126的算法5.3建立二叉树,并完成三种遍历算法 中序 后序 先序 #include<iostream> #include ...

  9. 【排序】表插入排序算法(C语言版)

    排序耗时的操作主要分为两种:查找比较.记录移位. 1.表插入排序 在查找比较基础上,尽量减少记录移位步数,可以令排序操作耗时降低,表插入排序正是为减少移位次数而出现的. 在数据结构上,数据是存储在静态 ...

随机推荐

  1. SSM整合搭建过程中的一个怪异问题

    好久没有搭建框架了,昨天开始试图搭建一个SSM框架,各种配置文件搭建成功,服务器也启动正确,但是在运行过程中,发现总是不能获取JDBC,不能够创建连接池工厂,报错如下:网页报500错误码 SEVERE ...

  2. expect 自动输入密码

    测试环境centos 6.5 7.4 1.远程登陆执行命令  scp #!/bin/bash expect -c ' set timeout 10000 spawn ssh root@192.168. ...

  3. 对plotTree的解释

    1.>>>a = 1/2/2   >>>a >>>0.25 2.def plotMidText(cntrPt,parentPt,txtString ...

  4. HTML5 新增元素梳理

    HTML5新增元素如下图: <canvas> 新元素 <canvas> 标签定义图形,比如图表和其他图像,该标签基于javascript的绘图api 新多媒体元素 <au ...

  5. UVA - 11400 Lighting System Design(照明系统设计)(dp)

    题意:共有n种(n<=1000)种灯泡,每种灯泡用4个数值表示.电压V(V<=132000),电源费用K(K<=1000),每个灯泡的费用C(C<=10)和所需灯泡的数量L(1 ...

  6. HDU 5282:Senior's String

    Senior's String  Accepts: 30  Submissions: 286  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit ...

  7. js中数字的4种遍历方式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...

  8. PHP常用的数学函数和字符串函数

    PHP常用函数总结 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2); //4.2 数字绝对值数字 2.ceil(): 进一法取整 echo ceil(9.999); // 10 ...

  9. python奇淫技巧之 抽屉 自动点赞

    前言 嘿,各位小伙伴晚上好呀,今天又给大家带来干货内容啦,今天带来的是,如何自动登录抽屉,并且点赞 原计划打算,是不打算使用selenium的,但是因为要涉及点赞,所以免不了登录,但是我又被啪啪打脸了 ...

  10. 高次同余方程 $BSGS$

    第一篇\(Blog\)... 还是决定把\(luogu\)上的那篇搬过来了. BSGS,又名北上广深 它可以用来求\(a^x \equiv b (mod \ n)\)这个同余方程的一个解,其中\(a, ...