UVa 725 简单枚举+整数转换为字符串
Division |
Write a program that finds and displays all pairs of 5-digit numbers that between them use the digits 0through 9 once each, such that the first number divided by the second is equal to
an integer N, where. That is,
abcde / fghij = N
where each letter represents a different digit. The first digit of one of the numerals is allowed to be zero.
Input
Each line of the input file consists of a valid integer N. An input
of zero is to terminate the program.
Output
Your program have to display ALL qualifying pairs of numerals, sorted by increasing numerator (and, of course, denominator).
Your output should be in the following general form:
xxxxx / xxxxx = N
xxxxx / xxxxx = N
.
.
In case there are no pairs of numerals satisfying the condition, you must write ``There are no solutions for N.". Separate the output for two different values of N by a blank line.
Sample Input
- 61
- 62
- 0
Sample Output
- There are no solutions for 61.
- 79546 / 01283 = 62
- 94736 / 01528 = 62
Miguel Revilla
2000-08-31
- /*算法分析:枚举fghij就可以计算出abcde,然后判断是否所有数字都不相同即可。 {提交时系统不支持itoa函数,故写了一个整数转换为字符串函数
- */
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <string>
- #include <cstdlib>
- using namespace std;
- char *reverse(char *s)
- {
- char temp;
- char *p = s; //p指向s的头部
- char *q = s; //q指向s的尾部
- while(*q)
- ++q;
- q--;
- //交换移动指针,直到p和q交叉
- while(q > p)
- {
- temp = *p;
- *p++ = *q;
- *q-- = temp;
- }
- return s;
- }
- /*
- * 功能:整数转换为字符串
- * char s[] 的作用是存储整数的每一位
- */
- char *my_itoa(int n)
- {
- int i = 0,isNegative = 0;
- static char s[100]; //必须为static变量,或者是全局变量
- if((isNegative = n) < 0) //如果是负数,先转为正数
- {
- n = -n;
- }
- do //从各位开始变为字符,直到最高位,最后应该反转
- {
- s[i++] = n%10 + '0';
- n = n/10;
- }while(n > 0);
- if(isNegative < 0) //如果是负数,补上负号
- {
- s[i++] = '-';
- }
- s[i] = '\0'; //最后加上字符串结束符
- return reverse(s);
- }
- int panDuan(int a, int b) {
- char a1[10], b1[10];
- memset(a1, 0, sizeof(a1));
- memset(b1, 0, sizeof(b1));
- strcpy(a1, my_itoa(a));
- strcpy(b1, my_itoa(b));
- int flag = 0;
- for (int i = 0; i<strlen(a1); i++) {
- for (int j = 0; j<strlen(b1); j++) {
- if (a1[i] == b1[j]) flag = 1;
- }
- }
- for (int i = 0; i<strlen(a1); i++) {
- for (int j = 0; j<strlen(a1) && i!=j; j++) {
- if (a1[i] == a1[j]) flag = 1;
- }
- }
- for (int i = 0; i<strlen(b1); i++) {
- for (int j = 0; j<strlen(b1) && i!=j; j++) {
- if (b1[i] == b1[j]) flag = 1;
- }
- }
- if (flag) return 0;
- return 1;
- }
- int main() {
- int n, f1 = 0;
- while (cin >> n && n) {
- if (f1) cout << endl;
- f1 = 1;
- int flag = 0;
- for (int i = 1000; i<=99999; i++) {
- int num = i*n;
- int f = i;
- if (num>=10000 && num<100000) {
- if (f < 10000) f *= 10;
- if (panDuan(f, num)) {
- flag = 1;
- cout << num << " / " ;
- if (i<10000) cout << 0<< i<< " = "<< n << endl;
- else cout << i<< " = "<< n << endl;
- }
- }
- }
- if (!flag) cout << "There are no solutions for " << n<< "." << endl;
- }
- return 0;
- }
UVa 725 简单枚举+整数转换为字符串的更多相关文章
- C语言把整数转换为字符串
目录 1.把整数/长整数格式化输出到字符串 2.注意事项 3.版权声明 各位可能在网上看到用以下函数可以将整数转换为字符串: itoa(); //将整型值转换为字符串 ultoa(); // 将无符号 ...
- UVA 725 UVA 10976 简单枚举
UVA 725 题意:0~9十个数组成两个5位数(或0开头的四位数),要求两数之商等于输入的数据n.abcde/fghij=n. 思路:暴力枚举,枚举fghij的情况算出abcde判断是否符合题目条件 ...
- c语言实现整数转换为字符串——不考虑负数
#include <stdio.h> #include <string.h> #define MAX_LEN 16 #define ESP 1e-5 typedef int i ...
- c/c++将整数转换为字符串
#include <iostream> using namespace std; int main(int argc, char **argv) { ; iint i,j; ],e[]; ...
- UVa 725 Division (枚举)
题意 : 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij = n的表达式,其中a-j恰好为数字0-9的一个排列(可以有前导0),2≤n≤79. 分析 : 最暴力的方法莫过于采用数组存 ...
- 利用python递归实现整数转换为字符串
def trans(num): if num // 10 == 0: return '%s'%num else: return trans(num//10)+'%s'%(num%10) a=trans ...
- C语言中将数字转换为字符串的方法
C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子: # include <stdio. h># ...
- 题目要求:建立一个类Str,将一个正整数转换成相应的字符串,例如整数3456转换为字符串"3456".
题目要求:建立一个类Str,将一个正整数转换成相应的字符串,例如整数3456转换为字符串"3456". 关键:怎么将一个数字转换为字符? [cpp] view plaincopy ...
- 利用python实现整数转换为任意进制字符串
假设你想将一个整数转换为一个二进制和十六进制字符串.例如,将整数 10 转换为十进制字符串表示为 10 ,或将其字符串表示为二进制 1010 . 实现 以 2 到 16 之间的任何基数为参数: def ...
随机推荐
- TCP/IP协议族各层的作用
从协议分层模型方面来讲,TCP/IP由四个层次组成:数据链路层.网络层.传输层.应用层一.数据链路层 数据链路层是负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层 ...
- 为什么硬链接不能链接目录、文件inode 和目录 dentry 的区别联系
我们对任何一个目录用ls -l 命令都可以看到其连接数至少是2,这也说明了系统中是存在硬连接的,而且命令ln -d 也可以让超级用户对目录作硬连接,这些都说明了系统限制对目录进行硬连接只是一个硬性规定 ...
- crm踩坑记(三)
React 如何同步更新state 由于setState方法是异步的,而通常很多时候在一个生命周期里更新state后需要在另一个生命周期里使用这个state. 下面介绍几个方法 // 1 this.s ...
- 为clang添加中文关键字
原址: https://zhuanlan.zhihu.com/p/31158537 以clang为基础做了一个与C++.C兼容中英文关键字的编译器 swizl/cnlang 原理就是加与英文关键字等效 ...
- collections --Counter
collections 模块--Counter 目的是用来跟踪值出现的次数.是一个无序的容器类型,以字典的键值对形式存储,其中元素为 key,其计数作为 value.计数值可以是任意的 Integer ...
- UWP 手绘视频创作工具技术分享系列 - Ink & Surface Dial
本篇作为技术分享系列的第四篇,详细讲一下手绘视频中 Surface Pen 和 Surface Dial 的使用场景. 先放一张微软官方商城的图,Surface 的使用中结合了 Surface Pen ...
- CSS3 黑白图片
每当有自然灾害的时候,很多网站都是灰白的,想知道是怎么实现的嘛? 1.IE私有滤镜的方式 自IE4开始,IE引入了私有滤镜,可以实现透明度.模糊.阴影.发光等效果,当然也可以实现灰度图像效果.代码如下 ...
- html5 storage事件
HTML5 虽然很多年了,但是真的了解不不够不够.主题说的是 storage时间,说起对 storage 事件的了解还是从 QQ音乐 说起. QQ音乐的主页是 https://y.qq.com , 而 ...
- 企业级memcached缓存数据库结合php使用与web管理memcached
环境 [root@cache01 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@cache01 ~]# uname -a ...
- python matplotlib 绘图基础
在利用Python做数据分析时,探索数据以及结果展现上图表的应用是不可或缺的. 在Python中通常情况下都是用matplotlib模块进行图表制作. 先理下,matplotlib的结构原理: mat ...