蓝桥杯-连接乘积(算法提高)

简介: 蓝桥杯-连接乘积(算法提高)

题目描述:


算法提高  连接乘积  

时间限制:1.0s     内存限制:256.0MB

 

问题描述

 192这个数很厉害,用它分别乘以1、2、3,会得到:

 192  x  1  =  192

 192  x  2  =  384

 192  x  3  =  576

 把这三个乘积连起来,得到192384576,正好是一个1~9的全排列

 我们把上面的运算定义为连接乘积:

 m  x  (1  ...  n)  =  k(其中m  >   0  且  n  >   1,对于上例,m  =  192、n  =  3、k  =  192384576)

 即k是把m分别乘以1到n的乘积连接起来得到的,则称k为m和n的连接乘积。

 按字典序输出所有不同的连接乘积k,满足k是1~9的全排列

输出格式

 每个k占一行

样例输出

显然,结果中应包含一行:

192384576  


程序代码:  


#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
vector<string> ans;
string s[]={"0","1","2","3","4","5","6","7","8","9"};
string ToString(int n)
{
  string ans;
  while(n)
  {
    ans+=s[n%10];
    n/=10;
  }
  reverse(ans.begin(),ans.end());//逆转字符序列 
  return ans;
}
int check(string str)
{
  int vis[10];
  memset(vis,0,sizeof(vis));
  for(int i=0;i<str.size();i++)
    vis[str[i]-'0']++;//记录1到9出现的次数 
  if(vis[0]>0)//如果出现了0,就是不符合题意 
    return 0;
  for(int i=1;i<10;i++)
  {
    if(vis[i]!=1)//只要1到9有一个出现次数不为1 
      return 0;
  }
  return 1;//当且仅当1到9每个都只出现了1次 
}
int main()
{
  for(int i=1;i<9999;i++)
  {
    string str;
    for(int j=1;j<10;j++)
    {
      str=str+ToString(i*j);//C++字符串拼接 
      if(check(str))
      {
        ans.push_back(str);//将每个符合的串str添加到ans之后 
        break;
      }
    }
  }
  sort(ans.begin(),ans.end());//最后直接sort 
  for(int i=0;i<ans.size();i++)
    cout<<ans[i]<<endl;
  return 0;
}


相关文章
|
9月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-667 多位数连接
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-667 多位数连接
66 0
|
9月前
|
算法 Java Serverless
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
69 1
|
9月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
69 1
|
28天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
58 6
|
28天前
|
算法 Java C++
【潜意识Java】蓝桥杯算法有关的动态规划求解背包问题
本文介绍了经典的0/1背包问题及其动态规划解法。
47 5
|
4月前
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
6月前
|
自然语言处理 算法 数据挖掘
【数据挖掘】十大算法之PageRank连接分析算法
文章介绍了PageRank算法的基本概念和数学模型,包括如何通过一阶马尔科夫链定义随机游走模型以及如何计算网页的重要性评分,并提供了PageRank迭代算法的具体步骤。
149 0
|
8月前
|
存储 机器学习/深度学习 算法
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
106 3
|
4月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
163 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
6月前
|
算法
【算法】前缀和——除自身以外数组的乘积
【算法】前缀和——除自身以外数组的乘积