P1008三连击

题解:

解法一:

暴力模拟每个三位数,如果三位数每个数字拆出来扔进数组里的各个个数都正好是1,就成了。

解法二:

一开始肯定尝试暴力,但这道题妙就妙在固定的九个数。取一个少一个,那么我们就可以在这九个数上做文章。

#include<iostream>
using namespace std;
int main()
{
    long long n,i,x,b,c,t=0;
    cin>>n>>x;//输入范围与要查的数字;
    for(i=1;i<=n;i++)//一到n进行循环;
    {
        b=i;//为了不改变i的值,就把i赋值给一个数;
        while(b!=0)//如果b不等于0,继续循环;
        {
            c=b%10;//求是否是x,是的话计数器加一;
            b=b/10;//求下一个数字是否为x;
            if(c==x) t++;
        }
    }
    cout<<t<<endl;//输出计数器的数字;
    return 0;//结束
}

 

posted @ 2018-09-25 22:03  风间6324  阅读(932)  评论(0编辑  收藏  举报