算法题库 让我怎能过大年

算法题库 让我怎能过大年

题目

问题描述

有如下的加法算式。其中每个汉字代表一个数字。
(如存在对齐问题,可参见【图1.png】)

           年
         大年
       过大年
     能过大年
   怎能过大年
 我怎能过大年
  • 让我怎能过大年

能能能能能能能

请填写“让我怎能过大年” 所代表的整数。
所有数字连在一起,中间不要空格。例如:“3125697”。当然,这个不是正确的答案。

注意:只填写一个整数,不要填写任何多余的内容。

解题思路

1、穷举,i= “让我怎能过大年”
2、首先通过取余发取出“年 大年 过大年 能过大年 怎能过大年 我怎能过大年 让我怎能过大年”这七个数的值并相加并保存结果。//sum保存
3、从i中截取出“能”的值并计算出“ 能能能能能能能”的值。//nen保存
4、对比sum的值和nensum的值如果相等则输出i。
结果:1572836
说明:一共有1572836 ,2072836两个值因为要求数字不能相同所以选第一个。如果需要判断数字中是否有重复数字只需将每位数字截取出来单独存入数组,遍历比较一下就ok了这里就不贴代码了。

//java代码
	public static void main(String[] args) {
		for (int i = 1234567; i < 9876543; i++) {
			int sum = 0;// 保存7个数的和
			for (int j = 0; j < 7; j++) {// 计算加法
				// 截取出“年 大年 过大年 能过大年 怎能过大年 我怎能过大年 让我怎能过大年”这七个数并相加
				sum = sum + (int) (i % Math.pow(10, 7 - j));
			}
			int nen = 1111111*(i / 1000 % 10);// 定义变量nen保存“能能能能能能能”的值
			if (sum == nen) {// 比较能的和是否和加法相同
				System.out.println(i);
			}
			//1572836
			//2072836一共有两个值因为其中数字2重复所以选第一个,这里缺少了一个判断数字是否相同,因为是填空题就偷下懒
		}
	}
	```

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值