在我的博客食用效果更佳!https://www.cbw2007.tk/articles/luogu-P1618-sol/,文章最初发表于2018年5月22日。更多见在不同的网站浏览本站内容
其实这题挺简单,没做过的先去试试【P1008】三连击
分析
思路与P1008相同。
具体思路:
一、枚举1~999的所有数为第一个数,然后分别乘 a , b , c a,b,c a,b,c。这就省去了三重循环,变为一重,在数据非常大时效果更明显。(其实无需循环至999~~,只是懒得算了而已~~ )
二、定义一个数组,记录1~9的使用量。
代码
1.0版
#include<iostream>
#include<cstring>
using namespace std;
int jishu(int n)//统计出现了多少数
{
int m[10],s=0;
memset(m,0,sizeof(m));//初始化数组
while (n!=0)//剥离数字并记录
{
m[n%10]++;
n/=10;
}
for (int j=0; j<=9; j++)//记录出现了多少种数字
if (m[j]>=1) s++;
return s;
}
int main()
{
int a