竖式问题
来源:互联网 发布:云计算三种模式 编辑:程序博客网 时间:2024/05/01 02:10
题目:找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。样例输入:2357样例输出:<1>..775X..33-----.23252325.-----25575The number of solutions = 1分析:尝试所有的abc和de,判断是否满足条件。C语言中的字符型用关键字char表示,实际储存的是字符的ASCII码。字符常量可以用单引号法表示。在语法上可以当做int型使用。
#include <stdio.h> #include <string.h> int main() { int abc, de, x, y, z, i, ok, count = 0; char s[20], buff[100]; scanf("%s", s); for (abc = 111; abc < 999; abc++) { for (de = 11; de < 99; de++) { x = abc * (de % 10); y = abc * (de / 10); z = abc * de; sprintf(buff, "%d%d%d%d%d", abc, de, x, y, z); //把这五个数字作为字符放入buff数组中 ,连接为一条字符串 ok = 1; for (i = 0; i < strlen(buff); i++) if (strchr(s, buff[i]) == NULL) ok = 0; if (ok) { printf("<%d>\n", ++count); printf("%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n", abc, de, x, y, z); } } } printf("The number of solutions = %d\n", count); return 0; }/* 函数功能:把格式化的数据写入某个字符串函数原型:int sprintf( char *buffer, const char *format [, argument] … );返回值:字符串长度(strlen)例子:char* who = "I";char* whom = "CSDN";sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. " 这字符串写到s中 strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。 */
0 0
- 竖式问题
- 【3.3 竖式问题】
- 竖式问题
- 竖式问题
- 竖式问题
- 竖式表达式问题
- 竖式问题
- 竖式问题
- 竖式问题
- 竖式问题
- 竖式问题
- 竖式问题
- 竖式问题
- 竖式求解问题
- C++ 竖式问题
- 竖式问题
- 【看书】竖式问题
- 竖式问题
- 使用数组来初始化 vector 对象
- C++primer plus第六版课后编程题答案11.5
- linux实用命令集
- Java游戏开发规则
- RGB图像中三个通道的每个灰度值的像素个数
- 竖式问题
- java 异常捕捉 ( try catch finally ) 深度解析
- 纹理特征之(一) LBP
- spring学习笔记(12)--Introduction-AOP中的动态代理
- struts2中的文件上传下载
- OPPO R1现身FCC 将登陆美国市场支持LTE网络
- 金山wps 安卓 面试问题总结
- Python 的内建函数
- @encode