题目: 给定等式 A B C D E 其中每个字母代表一个数字,且不同数字对应不
D F G 同字母。编程求出这些数字并且打出这个数字的
+ D F G 算术计算竖式。
———————
X Y Z D E
C语言答案如下:
#include <stdio.h>
int num[13];
long i,j;
void seperate(int* nums, long abcde, long dfg, long xyzde);
int check(void);
int main()
{
for(i=10234;i<=98765;i++)
{for(j=102;j<=987;j++)
{seperate(num,i,j,i+j*2);
if(check()) goto ok;
}}
ok:
printf(" %d%d%d%d%d\n",num[0],num[1],num[2],num[3],num[4]);
printf(" %d%d%d\n",num[5],num[6],num[7]);
printf(" + %d%d%d\n",num[5],num[6],num[7]);
printf("----------\n");
printf(" %d%d%d%d%d\n",num[8],num[9],num[10],num[11],num[12]);
}
void seperate(int* nums, long abcde, long dfg, long xyzde)
{
long n,p;
n=abcde;
nums[4]=n%10;
n=n/10;
nums[3]=n%10;
n=n/10;
nums[2]=n%10;
n=n/10;
nums[1]=n%10;
n=n/10;
nums[0]=n%10;
n=dfg;
nums[7]=n%10;
n=n/10;
nums[6]=n%10;
n=n/10;
nums[5]=n%10;
n=xyzde;
nums[12]=n%10;
n=n/10;
nums[11]=n%10;
n=n/10;
nums[10]=n%10;
n=n/10;
nums[9]=n%10;
n=n/10;
nums[8]=n%10;
}
int check()
{
int temp[10],m,n;
if(num[0]==num[8]) return 0;
if(num[1]==num[9]) return 0;
if(num[2]==num[10]) return 0;
if(num[3]!=num[11]||num[3]!=num[5]) return 0;
if(num[4]!=num[12]) return 0;
temp[0]=num[0];
temp[1]=num[1];
temp[2]=num[2];
temp[3]=num[3];
temp[4]=num[4];
temp[5]=num[6];
temp[6]=num[7];
temp[7]=num[8];
temp[8]=num[9];
temp[9]=num[10];
for(m=0;m<10;m++)
{
for(n=m+1;n<10;n++)
if(temp[m]==temp[n]) return 0;
}
return 1;
}
执行结果:
29786
850
+ 850
----------
31486
JavaScript 答案如下:
var types = [], explore;
explore = function (s, r) {
var len = s.length, i = 0;
if (len == 0) {
if(r[0]*10000 + r[1]*1000 + r[2]*100 + r[3]*10 + r[4] + r[4]*200 + r[5]*20 + r[6]*2 - r[7] * 10000 - r[8]*1000 - r[9]*100 - r[3]*10 - r[4]) {
}else{
types.push(r.join(''));
}
} else {
for (; i < len; i++) {
explore(s.slice(0, i).concat(s.slice(i + 1)), r.concat(s[i]));
}
}
};
// 执行并打印结果
explore([0,1,2,3,4,5,6,7,8,9], []);
console.log(types);
不明白的地方, 就是红色标注的。 为什么有了这个判断条件,就能输出想要的答案。
去除这个判断, 只能输出一堆数组。
求高人指点呀。
相关推荐
【郝斌C语言入门视频课件】是一套适合初学者的C语言教学资源,由郝斌老师精心制作,以其深入浅出的讲解和实战演示深受自学人士欢迎。课程旨在帮助学员掌握C语言的基础知识和编程技能,同时也为后续的深入学习打下...
15. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是: 答案:A. c = *p1 + *p2 解释:在C语言中,指针变量p1和p2的赋值操作可以导致输出结果的变化,但是不能执行加法操作。
对于“元方‘入门不顾’是否失礼”的讨论,一方面体现了元方维护父亲尊严的决心,另一方面也引发了对礼仪和教养的思考。 总的来说,这份测试题全面涵盖了初一语文上学期的主要学习内容,包括基础知识、古诗词、修辞...
C语言是一种广泛应用的高级编程语言,尤其在教育领域,作为入门级的计算机语言课程,它要求学生具备扎实的语法基础和实际编程能力。然而,传统的C语言教学方法往往侧重于语法讲解,配以简单的程序示例,忽视了培养...
面向对象的"C语言"课程是工科高校大学生的基础课程,尽管C#和Java等面向对象语言已成为主流,但C语言因其高效、可移植性及对硬件的直接操作能力,仍被广泛用于入门教学。C语言的数据类型丰富,运算符多样,赋予了其...
C语言程序设计是计算机编程的基础课程,对于高职教育尤其重要,因为它不仅是学习程序设计的入门,也是其他计算机课程的基础。然而,在实际教学中,学生往往面临语法规则掌握不牢固、编程规范性差以及缺乏算法思维等...
在Java入门阶段,第一个程序通常是"Hello, World!"。这段简单的代码展示了如何在Java中定义一个类并输出一条信息。`public class Hello`定义了一个公共类,`main`方法是程序的入口点,`System.out.println`则用于...
很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone,所以作为入门,读一下清华大学出版社出版的《Java 语言与面向对象程序设计》可能会对你有所帮助。本文假定你具备一切学习此语言所需的知识,没有也不...
文章中提到的一位学员花费近半年时间在U-Boot移植上仍遇到困难,这引发了作者对于新手是否应该一开始就从U-Boot移植开始学习的思考。 首先,U-Boot移植对于资深的嵌入式工程师来说是一项必不可少的技能,因为它涉及...
学习计算机心得体会是对个人在计算机学习过程中的感悟和总结,涵盖了理论知识的学习、实践技能...在学习的过程中,我们不断探索,不断提升,最终将这些知识转化为应对挑战的工具,这就是学习计算机带给我们的深远影响。
挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 ...
挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 ...
挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 缩进 ...
对于初学者或经验不足的开发者来说,面对每一个开发环节,可能倾向于提出看似合理的直觉性解决方案,如“先A后B再C”。然而,这种缺乏模式支撑的解决方案往往存在以下缺陷: 1. **面向过程的编码**:如示例代码所示...
本书《如何像计算机科学家一样思考:使用Python 3学习编程》是一本经典的Python编程入门教材,旨在培养读者像计算机科学家那样思考问题的能力。书中通过一系列章节详细介绍了Python编程的基础知识、核心概念和技术...
《编程高手箴言》是一本深受争议...虽然书中的一些观点可能引发争议,但无疑它提供了一条通向编程高手之路的思考路径,对提升个人技术水平和职业发展大有裨益。无论你是初学者还是资深开发者,都能从中找到启发和收获。
前言 <br>本书的读者 <br>本书的由来 <br>本书目前的状况 <br>官方网站 <br>约定条款 <br>欢迎给我反馈 <br>值得思考的一些东西 <br>1. 介绍 <br>简介 <br>Python的特色 ...
Python因其简洁易学的语法而成为理想的入门语言。 在学习输入/输出时,首先会接触到的是标准输入、输出和错误处理。标准输入(stdin)通常来自键盘,标准输出(stdout)是程序的正常结果,而标准错误(stderr)则...