Vijos訓練計劃 1-1 計數問題
阿新 • • 發佈:2019-01-08
剛剛參加了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; }