UVA - 725 Division-sprintf的妙用

题目:

输入整数n,按从小到大顺序输出所有形如abcde/fghij=n的表达式,其中a~j 恰好为0~9的一个排列(可以有前导0),2<=n<=79

解题思路:
暴力枚举。

下面这代码暴力dfs,结果超时了。
代码如下:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N = 13;
bool vis[N];
bool vis2[N];
int n;bool check(int sum_a) {int sum_b = sum_a * n;if (!sum_b)return false;if (sum_b > 99999)return false;if (sum_a+sum_b > 1000000000) return false;memcpy(vis2, vis, sizeof(vis));while (sum_b) {vis2[sum_b % 10] = true;sum_b = sum_b / 10;}for (int i = 0; i <= 9; i++) {if (!vis2[i])return false;}return true;
}
bool flag;bool dfs(int u, int sum_a) {if (u == 6)if (check(sum_a)) {flag = true;printf("%05d / %05d = %d\n", sum_a * n, sum_a, n);}for (int i = 0; i <= 9; i++) {if (!vis[i]) {vis[i] = true;dfs(u + 1, sum_a * 10 + i);vis[i] = false;}}return false;
}int main() {while (cin >> n, n) {memset(vis, 0, sizeof(vis));dfs(1, 0);if (!flag)printf("There are no solutions for %d.\n", n);cout << endl;flag = false;}return 0;
}

让我们看看sprintf的妙用!!!

代码如下:

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
char s[20];int main() {int n;while (cin >> n, n) {bool flag1 = true;for (int fghij = 1234;; fghij++) {int abcde = fghij * n;sprintf(s, "%05d%05d", abcde, fghij);if (strlen(s) > 10)break;sort(s, s + 10);bool flag = true;for (int i = 0; i < 10; i++) {if (s[i] != '0' + i)flag = false;}if (flag) {flag1 = false;printf("%05d / %05d = %d\n", abcde, fghij, n);}}if (flag1) {printf("There are no solutions for %d.\n", n);}}return 0;
}

但是代码提交后,会显示
在这里插入图片描述
那是因为UVA的输出太…,所以我们学到东西就行了!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于.NET下的人工智能系列专题|.NET下的人工智能系列专题|用Keras.NET 做一个图像识别的训练...

.NET Core 的应用场景越来越广&#xff0c;开源社区也不断壮大&#xff0c; .NET Core在机器学习领域不断发展ML.NET外&#xff0c;也通过结合Tensorflow.NET去完善ML.NET在深度学习领域的功能&#xff0c;在ML.NET 1.3开始迈出了非常重要的一步。这不仅是微软拥抱开源的策略&a…

CoreJava 笔记总结-第五章 继承

文章目录第五章 继承类、超类和子类定义子类覆盖方法子类构造器多态阻止继承: final类和方法强制类型转换抽象类受保护访问访问控制修饰符小结Object: 所有类的超类Object类型的变量equals方法相等测试与继承hashCode方法toString方法泛型数组列表声明数组列表访问数组列表元素…

WTM系列视频教程:WebApi

文字摘要&#xff1a;“今天跟大家聊聊WTM中的WebApi&#xff0c;WebApi直接继承Controller Base&#xff0c; 他实际上比普通的Controller要更简单&#xff0c;流程更短&#xff0c;因为它不需要处理关于界面的问题。”“实际上如果我们使用普通Controller返回Json&#xff0c…

《C++ Primer》2.1.3节练习

#include <iostream> using namespace std;int main() {cout << "2\x4d\012";cout << "2\tM\n";return 0; }//\x4d输出M //\012输出换行 //\t输出制表符

CoreJava 笔记总结-第六章 接口、lambda表达式与内部类

文章目录第六章 接口、lambda表达式与内部类接口接口的概念接口的属性接口与抽象类静态和私有方法默认方法解决默认方法冲突接口与回调Comparator接口对象克隆lambda表达式函数式接口方法引用构造器引用变量作用域处理lambda表达式再谈Comparator类内部类使用内部类访问对象的状…

【复杂系统迁移 .NET Core平台系列】之静态文件

源宝导读&#xff1a;微软跨平台技术框架—.NET Core已经日趋成熟&#xff0c;已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多&#xff0c;业务关联也日益复杂&#xff0c;…

[Abp vNext 源码分析] - 19. 多租户

一、简介ABP vNext 原生支持多租户体系&#xff0c;可以让开发人员快速地基于框架开发 SaaS 系统。ABP vNext 实现多租户的思路也非常简单&#xff0c;通过一个 TenantId 来分割各个租户的数据&#xff0c;并且在查询的时候使用统一的全局过滤器(类似于软删除)来筛选数据。关于…

HTMLCSS 超简单的前端设计入门-2!

文章目录图片元素img元素和a元素连用和map元素和figure元素多媒体元素videoaudio列表元素有序列表无序列表定义列表容器元素div元素语义化容器元素元素包含关系为网页添加样式CSS术语解释选择器声明块CSS代码书写位置常见样式声明选择器简单选择器选择器的组合选择器的并列层叠…

八数码问题I-bfs和map标记

解题思路&#xff1a; bfs&#xff0c;将棋盘转化成一个整数表示其状态&#xff0c;比如我们到到达的状态是815736402&#xff0c;而样例给的输入状态是264137058&#xff0c;因为这些整数过大&#xff0c;标记数组开不下&#xff0c;所以可以用map来代替数组&#xff0c;写得时…

一个迷你ASP.NET Core框架的实现(下)

【框架内幕】| 作者 / Edison Zhou这是恰童鞋骚年的第196篇原创文章上一篇我们了解了AspNetCore.Mini这个项目的背景及项目结构和流程&#xff0c;这一篇我们继续解析几个核心对象。本文整理自A大&#xff08;蒋金楠&#xff09;的主题分享&#xff0c;点击本文底部“阅读原文”…

CoreJava 笔记总结-第七章 异常,断言和日志

文章目录第七章 异常,断言和日志处理错误异常的分类声明检查型异常如何抛出异常创建异常类捕获异常捕获单个异常捕获多个异常再次抛出异常和异常链finally子句try-with-Resource语句分析堆栈轨迹元素使用异常的技巧使用断言使用断言完成参数检查日志基本日志高级日志调试技巧第…

根据后序和中序求二叉树的先序

代码如下&#xff1a; #include <iostream> using namespace std; const int N 1010; int in_order[N], post_order[N], lch[N], rch[N];int build(int inL, int inR, int postL, int postR) {if (inL > inR)return 0;int root post_order[postR];int k inL;while…

CoreJava 笔记总结-第九章 集合

第九章 集合 文章目录第九章 集合Java集合框架集合接口与实现分离Collection接口迭代器泛型实用方法集合框架中的接口具体集合链表数组列表散列集树集优先队列映射映射的基本操作更新映射条目映射视图弱散列试图链接散列集与映射枚举集与映射标识散列映射视图与包装器小集合子范…

30多岁程序员老W,无奈选择转行!问题出在哪?

作者&#xff1a;邹溪源&#xff0c;长沙资深互联网从业者&#xff0c;架构师社区特邀嘉宾&#xff01;一有一天&#xff0c;一位同事跟我说&#xff1a;老w已经改行做美缝去了&#xff0c;你怎么看&#xff1f;我想了想&#xff0c;说&#xff1a;他大概终于做出了眼下最符合他…

一维前缀和

代码如下&#xff1a; #include <iostream> using namespace std; const int N 1010; int a[N], s[N];int main() {int n;cin >> n;for (int i 1; i < n; i) {cin >> a[i];//原数组s[i] s[i - 1] a[i];}for (int i 1; i < n; i)cout << s[…

HttpClientFactory的套路,你知多少?

背景ASP.NET Core 在 2.1 之后推出了具有弹性 HTTP 请求能力的 HttpClient 工厂类 HttpClientFactory。替换的初衷还是简单摆一下&#xff1a;① using(var client new HttpClient()) 调用的 Dispose() 方法并不会立即释放底层 Socket 连接&#xff0c;新建 Socket 需要时间&a…

CoreJava 笔记总结-第十二章 并发-1

第十二章 并发 线程 package chapter12_concurrent.threads;public class ThreadsTest {public static final int DELAY 10;public static final int STEPS 100;public static final double MAX_AMOUNT 1000;public static void main(String[] args) {var bank new Bank(…

走迷宫-双向bfs解法

双向bfs适用于知道起点和终点的状态下使用&#xff0c;从起点和终点两个方向开始进行搜索&#xff0c;可以非常大的提高单个bfs的搜索效率同样&#xff0c;实现也是通过队列的方式&#xff0c;可以设置两个队列&#xff0c;一个队列保存从起点开始搜索的状态&#xff0c;另一个…

.NET Core开发实战(第16课:选项数据热更新:让服务感知配置的变化)--学习笔记...

16 | 选项数据热更新&#xff1a;让服务感知配置的变化选项框架还有两个关键类型&#xff1a;1、IOptionsMonitor2、IOptionsSnapshot场景&#xff1a;1、范围作用域类型使用 IOptinsSnapshot2、单例服务使用 IOptionsMonitor通过代码更新选项&#xff1a;IPostConfigureOption…

CoreJava 笔记总结-第十二章 并发-2

文章目录第十二章 并发synchronized关键字同步块监视器概念volatile字段final变量原子性死锁线程安全的集合阻塞队列映射条目的原子更新对并发散列映射的批操作并行数组算法同步包装器任务和线程池Callable, FutureExecutor执行器fork-in框架异步计算可完成Future组合可完成Fut…