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;//结束 }