您的位置:首页 > 其它

Vijos训练计划 1-1 计数问题

2018-03-23 16:41 204 查看
刚刚参加了Vijos的训练计划,很长时间不学习了,有一些东西都已经忘记了,但是昨天看到学长写的代码,发现自己要走的路还很长,这道题时训练计划的第一题,所以难度比较简单,下面附上代码。#include<bits/stdc++.h>
/*
作者:Unis
日期:2018.3.23
题目:计数问题
*/
using namespace std;

int JudgeIndex(int x){
int t_x = x;
int countx = 0;
do{

t_x /= 10;
countx++;

}while(t_x != 0);

return countx;
}

int main() {
//10 = 1和0 11 = 1 和 1
int x,n;
int flag[10];
int t,e,countx=0;
while(scanf("%d %d",&n,&x) != EOF){

memset(flag,0,sizeof(flag));
//testing
// for(int i = 0;i < 22;i++){
// printf("%d\n",i);
// }

for(int i = 1;i <= n;i++){
t = i,e = i;

if(i >= 10){

countx = JudgeIndex(i);
//printf("index=%d\n",countx);

do{

e = t % 10;
t = t / 10;
flag[e]++;
countx--;

}while(countx != 0);

}
else{
flag[i]++;
}

//printf("flag = %d\n",flag[i]);

}

printf("%d\n" ,flag[x]);
}
return 0;
}

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