对循环的使用(多重循环的理解)

针对多个数字组合求解时,可以选择使用最基础的循环求解,锻炼巩固基础能力。

有关多重循环:

针对多次,多数问题起到很好的作用。

例:

奖券数目

有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
 

请提交该数字(一个整数),不要写任何多余的内容或说明性文字。

#include <stdio.h>
#include<math.h>
int main()
{
	int a, b, c, d, e;
	int sum = 0;
	for (a = 1; a <= 9; a++)
	{
		for (b = 0; b <= 9; b++)
		{
			for (c = 0; c <= 9; c++)
			{
				for (d = 0; d <= 9; d++)
				{
					for (e = 0; e <= 9; e++)
					{
						if (a == 4 || b == 4 || c == 4 || d == 4 || e == 4)
						{
							continue;
						}
						sum++;
					}
				}
			}
		}
	}
	printf("%d", sum);
	return 0;
}

 

这个问题中的数字可以重复,所以仅在最后一次循环将条件给出即可。

另一道为:

问题描述:

观察下面的加法算式:

      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

#include <stdio.h>
#include<math.h>
int main()
{
	int a, b, c, d, e, f, g, h;
	for (a = 1; a <= 9; a++)
	{
		for (b = 0; b <= 9; b++)
		{
			if (b == a)
			{
				continue;
			}
			for (c = 0; c <= 9; c++)
			{
				if (c == a || c == b)
				{
					continue;
				}
				for (d = 0; d <= 9; d++)
				{
					if (d == c || d == b || d == a)
					{
						continue;
					}
					for (e = 1; e <= 9; e++)
					{
						if(e==a||e==b||e==c||e==d)
						{
							continue;
						}
						for (f = 0; f <= 9; f++)
						{
							if (f == a || f == b || f == c || f == d || f == e)
							{
								continue;
							}
							for (g = 0; g <= 9; g++)
							{
								if(g==a||g==b||g==c||g==d||g==e||g==f)
								{
									continue;
								}
								for (h = 0; h <= 9; h++)
								{
									if (h == a || h == b || h == c || h == d || h == e || h == f || h == g)
									{
										continue;
									}
									else
									{
										if (a * 1000 + b * 100 + c * 10 + d + e * 1000 + f * 100 + g * 10 + b == e * 10000 + f * 1000 + c * 100 + b * 10 + h)
										{
											printf("%d%d%d%d", e, f, g, b);
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return 0;
}

 

这道题中各个数字不可以重复,选择在每一道循环中加入约束条件,循序渐进。

循环真不错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值