`

由一个C入门题引发的思考

阅读更多

题目: 给定等式    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语言教学资源,由郝斌老师精心制作,以其深入浅出的讲解和实战演示深受自学人士欢迎。课程旨在帮助学员掌握C语言的基础知识和编程技能,同时也为后续的深入学习打下...

    C指针练习.docx

    15. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是: 答案:A. c = *p1 + *p2 解释:在C语言中,指针变量p1和p2的赋值操作可以导致输出结果的变化,但是不能执行加法操作。

    初一语文上册期末测试题及答案【鲁教版】精选.doc

    对于“元方‘入门不顾’是否失礼”的讨论,一方面体现了元方维护父亲尊严的决心,另一方面也引发了对礼仪和教养的思考。 总的来说,这份测试题全面涵盖了初一语文上学期的主要学习内容,包括基础知识、古诗词、修辞...

    C语言案例教学法在教学中的作用探究.pdf

    C语言是一种广泛应用的高级编程语言,尤其在教育领域,作为入门级的计算机语言课程,它要求学生具备扎实的语法基础和实际编程能力。然而,传统的C语言教学方法往往侧重于语法讲解,配以简单的程序示例,忽视了培养...

    面向对象的“C语言”课程教学质量提升策略研究.pdf

    面向对象的"C语言"课程是工科高校大学生的基础课程,尽管C#和Java等面向对象语言已成为主流,但C语言因其高效、可移植性及对硬件的直接操作能力,仍被广泛用于入门教学。C语言的数据类型丰富,运算符多样,赋予了其...

    高职C语言程序设计教学改革及创新研究.pdf

    C语言程序设计是计算机编程的基础课程,对于高职教育尤其重要,因为它不仅是学习程序设计的入门,也是其他计算机课程的基础。然而,在实际教学中,学生往往面临语法规则掌握不牢固、编程规范性差以及缺乏算法思维等...

    Java零基础学习视频通俗易懂V80完整版.docx

    在Java入门阶段,第一个程序通常是"Hello, World!"。这段简单的代码展示了如何在Java中定义一个类并输出一条信息。`public class Hello`定义了一个公共类,`main`方法是程序的入口点,`System.out.println`则用于...

    c#学习笔记.txt

    很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone,所以作为入门,读一下清华大学出版社出版的《Java 语言与面向对象程序设计》可能会对你有所帮助。本文假定你具备一切学习此语言所需的知识,没有也不...

    跟涛哥一起学嵌入式 03:嵌入式要从u-boot移植学起?1

    文章中提到的一位学员花费近半年时间在U-Boot移植上仍遇到困难,这引发了作者对于新手是否应该一开始就从U-Boot移植开始学习的思考。 首先,U-Boot移植对于资深的嵌入式工程师来说是一项必不可少的技能,因为它涉及...

    2022年学习计算机心得体会15篇.docx

    学习计算机心得体会是对个人在计算机学习过程中的感悟和总结,涵盖了理论知识的学习、实践技能...在学习的过程中,我们不断探索,不断提升,最终将这些知识转化为应对挑战的工具,这就是学习计算机带给我们的深远影响。

    python简明教程.chm

    挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 ...

    简明python教程(chm)

    挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 ...

    简明python教程

    挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 缩进 ...

    精通Spring--Java轻量级架构开发实践

    对于初学者或经验不足的开发者来说,面对每一个开发环节,可能倾向于提出看似合理的直觉性解决方案,如“先A后B再C”。然而,这种缺乏模式支撑的解决方案往往存在以下缺陷: 1. **面向过程的编码**:如示例代码所示...

    How to Think Like a Computer Scientist - Learning with Python 3 documentation

    本书《如何像计算机科学家一样思考:使用Python 3学习编程》是一本经典的Python编程入门教材,旨在培养读者像计算机科学家那样思考问题的能力。书中通过一系列章节详细介绍了Python编程的基础知识、核心概念和技术...

    编程高手箴言_完整PDF.rar

    《编程高手箴言》是一本深受争议...虽然书中的一些观点可能引发争议,但无疑它提供了一条通向编程高手之路的思考路径,对提升个人技术水平和职业发展大有裨益。无论你是初学者还是资深开发者,都能从中找到启发和收获。

    Python中文手册

    前言 &lt;br&gt;本书的读者 &lt;br&gt;本书的由来 &lt;br&gt;本书目前的状况 &lt;br&gt;官方网站 &lt;br&gt;约定条款 &lt;br&gt;欢迎给我反馈 &lt;br&gt;值得思考的一些东西 &lt;br&gt;1. 介绍 &lt;br&gt;简介 &lt;br&gt;Python的特色 ...

    COM411-Problem-Solving-through-Programming

    Python因其简洁易学的语法而成为理想的入门语言。 在学习输入/输出时,首先会接触到的是标准输入、输出和错误处理。标准输入(stdin)通常来自键盘,标准输出(stdout)是程序的正常结果,而标准错误(stderr)则...

Global site tag (gtag.js) - Google Analytics