⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 我做的一些C语言练习题,里面一共有76道题目,主要用到一些计算机常用的算法,如:递归,分治,动态规划,回溯法,AO算法等,除此之外还用到比较多的数学知识,我做了一部分,还有一些暂时还没做出来,大家也帮
💻 C
字号:
/**************************************************************************

  1.  给定等式  A B C D E     其中每个字母代表一个数字,且不同数字对应不
                    D F G     同字母。编程求出这些数字并且打出这个数字的
             +      D F G     算术计算竖式。

             ───────

                X Y Z D E

  分析得:
  F = 5
  G = 0
  X = A + (B + (C + D + D + 1) / 10) / 10
  Y = (B + (C + D + D + 1) / 10) %10
  Z = (C + D + D + 1) % 10
  
  ************************************************************************/

#include <stdio.h>

enum{A=0,B,C,D,E,F,G,X,Y,Z};

int nNum[10];

char* exp = "\
    %d %d %d %d %d\n\
        %d %d %d\n\
 +      %d %d %d\n\
───────\n\
    %d %d %d %d %d\n";

int checked()
{
	int i,j;
	for(i=0; i<=9; i++)
	{
		for(j=i+1; j<=9; j++)
		 if(nNum[i] == nNum[j])
			return 0;
	}
	return 1;
}

void output()
{
	printf(exp,nNum[A],nNum[B],nNum[C],nNum[D],nNum[E],nNum[D],nNum[F],
		nNum[G],nNum[D],nNum[F],nNum[G],nNum[X],nNum[Y],nNum[Z],nNum[D],nNum[E]);
	printf("\n");
}

void main()
{
	nNum[F] = 5;
	nNum[G] = 0;

	for(nNum[A]=1; nNum[A]<=9; nNum[A]++)
	{
		for(nNum[B]=1; nNum[B]<=9; nNum[B]++)
		{
			for(nNum[C]=1; nNum[C]<=9; nNum[C]++)
			{
				for(nNum[D]=1; nNum[D]<=9; nNum[D]++)
				{
					for(nNum[E]=1; nNum[E]<=9; nNum[E]++)
					{
						nNum[X] = nNum[A] + (nNum[B] + (nNum[C] + nNum[D] + nNum[D] + 1)/10)/10;
						nNum[Y] = (nNum[B] + (nNum[C] + nNum[D] + nNum[D] + 1)/10)%10;
						nNum[Z] = (nNum[C] + nNum[D] + nNum[D] + 1)%10;
						if(checked())
						{
							output();
						}
					}
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -