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 ...
随机推荐
- ES6 正则的扩展
1. RegExp构造函数 ES5中,RegExp构造函数的参数: 参数是字符串,这时第二个参数表示正则表达式的修饰符(flag) 参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝.但是,ES ...
- 2.sass变量、嵌套、混合(mixin)、继承拓展、@import、comment
变量.嵌套.混合(mixin).继承拓展.@import.comment 变量的意义 在sass里我们可以定义多个变量来存放颜色.边框等等的样式,这样就可以在下面想要使用样式的时候使用变量了 这样的优 ...
- 文件上传之伪Ajax方式上传
From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...
- Anti-pattern/反模式
常见的与"直觉"相背离的anti-pattern产生的实际原因是没有深入.全面地考虑问题,即只关注到自己关心的方面,忽略了其他重要的.起相反作用的因素. 所以这个"直 ...
- 求字符数组逆序数(poj1007)
int InversionNumber(char* s,int len) { int ans=0; //s逆序数 int A,C,G; //各个字母出现次数,T是最大的,无需计算T出现次数 A=C ...
- JavaScript的DOM编程--01--js代码的写入位置
DOM:Document Object Model(文本对象模型) D:文档 – html 文档 或 xml 文档 O:对象 – document 对象的属性和方法 M:模型 DOM 是针对xml(h ...
- LeetCode题目总结(二)
我的代码在github上,https://github.com/WINTERFELLS/LeetCode-Answers 这里只提供个人的解题思路,不一定是最好的. Problems 21-40 合并 ...
- JS函数的参数声明中用 var 与不用 var的区别
1.var 声明的变量,作用域是当前 function 2.没有声明的变量,直接赋值的话, 会自动创建变量,但作用域是全局的. 例如: function doSth() { a = "AAA ...
- H5 + 开发App(分享功能)
我们开发App有一个不可少的功能,就是分享功能.让用户将app分享到他的社交圈.比如微信 QQ 微博等等. 准备工作:我们要先去申请相关的权限, 这是传送门http://ask.dcloud.net. ...
- vue-父子组件嵌套的示例
组件注册: // 注册组件 Vue.component('my-component', { template: '<div>A custom component!</div>' ...