您的位置:首页 > 其它

【STL运用】神奇的数字

2018-03-30 11:07 447 查看


我的AC代码:#include<iostream>
#include<bits/stdc++.h>
using namespace std;
#include<map>
#include<string>
string string_sort(string a)
{
for(int i=0;i<a.length();i++)
{
for(int j=i+1;j<a.length();j++)
{
if(a[i]>a[j])
{
swap(a[i],a[j]);
}
}
}
return a;
}

bool ok(string a,string b)
{
if(a==b)
return true;
return false;
}

int main()
{
int cnt=0;
for(long long i=1;i<=16666666;i++) //因为6*16666666就进位了,所以之后的数肯定不符合题意了
{
long long num[7];
for(int j=2;j<=6;j++)
{
num[j]=i*j;
if(!ok(string_sort(to_string(num[j])),string_sort(to_string(i))))
break;
if(j==6)
{
cnt++;
}
}
}
cout<<cnt;
return 0;
}主要是几个C++11自带的函数,很实用!
① to_string(int )  :把一个数字直接存成一个字符串。
②swap(char,char) :把两个字母直接交换,这在写string中排序用到了。

当然,这要用C++11,所以在上机时可以先注意devC++的编译设置:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: