zoukankan      html  css  js  c++  java
  • 算法竞赛入门经典 第3章 数组和字符串 学习笔记 3

    算法竞赛入门经典 第3章 数组和字符串 学习笔记 3

    字符数组

    我要成功,一念既出,万山无阻
    在C语言中,字符串实际上就是字符数组
    竖式问题。找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中, 所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有 竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出 (为了便于观察,竖式中的空格改用小数点显示,但所写程序中应该输出空格,而非小数点)。
    样例输入: 2357
    样例输出:

    <1> 
    ..775 
    X..33 
    ----- 
    .2325 
    2325. 
    ----- 
    25575 
    The number of solutions = 1
    

    耐心看这个样例,就是竖式相乘,.2325 是中间结果
    思路:尝试所有的abc和de,判断是否满足条件
    “scanf("%s", s)”。和“scanf("%d", &n)”类似,它会读入一个不含空格、 TAB和回车符的字符串,存入字符数组s。注意,不是“scanf("%s", &s)”,s前面没有“&”符号
    在“scanf("%s", s)”中,不要在s前面加上“&”符号。如果是字符串数组char s[maxn] [maxl],可以用“scanf("%s", s[i])”读取第i个字符串。注意,“scanf("%s", s)”遇到 空白字符会停下来。

    这里复习一下前面提到的内容:
    关于输出:
    printf 输出到屏幕
    fprintf 输出到文件
    sprintf 输出到字符串 (注:要保证字符串足够大)

    strchr:在一个字符串中查找单个字符 找出在字符串str中第一次出现字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。
    字符串的本质是数组,所以只能用 strcpy(a,b) 赋值
    strcmp(a,b) 比较 strcat(a,b) 连接

    #include<iostream>
    #include<cstring>
    using namespace std;
    int main()
    {
    	int count=0;
    	char s[20];
    	char buf[99];
    	cin>>s;
    	for(int abc=111;abc<=999;abc++)
    	{
    		for(int de=11;de<=99;de++)
    		{
    			int x=abc*(de%10),y=abc*(de/10),z=abc*de;   //x=2325 
    			sprintf(buf,"%d%d%d%d%d",abc,de,x,y,z);         //输出到buf这个字符串中 
    			int ok=1;
    			for(int i=0;i<strlen(buf);i++)
    			{
    				if(strchr(s,buf[i])==NULL) ok=0;  //只要有一个buf[i]不在s里,ok就等于0
    			}
    			if(ok)
    			{
    				printf("<%d>
    ", ++count);
    				printf("%5d
    X%4d
    -----
    %5d
    %4d
    -----
    %5d
    
    ", abc, de, x, y, z);
    			}
    		}
    		printf("The number of solutions = %d
    ", count);
    	}
    	return 0;
    }
    
  • 相关阅读:
    ArcGIS自定义工具箱-列举损坏的数据源
    ArcGIS自定义工具箱-修复损坏的工作空间
    ArcGIS自定义工具箱-显示地图文档结构
    ArcGIS自定义工具箱-字段合并
    ArcGIS自定义工具箱-字段分割
    ArcGIS自定义工具箱-字段值部分替换
    [转载]ArcGIS Engine 中的多线程使用
    一个WebService Demo
    [GeoServer]Openlayers简单调用
    [ArcEngine]Geotransformation地理变换
  • 原文地址:https://www.cnblogs.com/serendipity-my/p/12635353.html
Copyright © 2011-2022 走看看