微信小程序教程 Vue全家桶 random encoding shiny static Egret Engine vuejs视频教程 bootstrap模板 nginx视频 jquery获取元素宽度 bootstrap中文api文档 查看rabbitmq版本 pcie高速固态硬盘 当前时间减一天 android入门实例 wordpress本地建站 flutter 缺点 pythonlist python下载安装教程 python打开文件 python连接mysql数据库 java案例 java数据 java类与对象 java获取当前年份 java类的继承 java读取文件内容 linux系统安装步骤 内存整理软件 键盘宏软件 蒙文字体 tftpd64 iphone滚动截屏 圆形截图 html5下载 页面刷新 华为下拉开关设置 视频加文字用什么软件 幽灵行动多少钱
当前位置: 首页 > 学习教程  > 编程语言

24行代码AC_蓝桥杯2019省赛 试题 D: 数的分解

2020/10/16 18:24:38 文章标签:

问题描述 把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000100118 和 1001100018 被视为同一种。 这是一道结…

问题描述

把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包
含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和
1001+1000+18 被视为同一种。

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


程序一秒钟大概运行一亿次, 201920192019的规模 大概4秒钟就运行完了, 因此暴力可行。

循环中赋初值:j=i+1, k=j+1, 可以避免出现相同的数不同组合的情况。 请仔细体会。


代码展示

#include<bits/stdc++.h>
using namespace std;

bool check(int num) {
	while(num) {
		int k = num%10;
		num /= 10;
		if(k ==2 || k==4) return false;
	}
	return true;
}

int main() {
	int sum = 0;
	for(int i = 1; i < 2019; i++) {
		if(!check(i)) continue;
		for(int j = i+1; j < 2019; j++) {
			if(!check(j)) continue;
			for(int k = j+1; k < 2019; k++) {
				if(!check(k)) continue;
				if(i+j+k == 2019) sum++; 
			}
		}
	} 
	cout << sum;
	return 0;
} 

总结:最重要的一点,我们的目的是解题, 不是炫技! 实用才是王道!


本文链接: http://www.dtmao.cc/news_show_300405.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?