數數字
System Message (命題人) yule_z (測試)
基準時間限制:1 秒 空間限制:262144 KB 分值: 20
統計一下,(n個a) × b 的結果裡面有多少個數字d,a,b,d均為一位數。
樣例解釋:
3333333333*3=9999999999,裡面有10個9。
Input
多組測試資料。
第一行有一個整數T,表示測試資料的數目。(1≤T≤5000)
接下來有T行,每一行表示一組測試資料,有4個整數a,b,d,n。 (1≤a,b≤9,0≤d≤9,1≤n≤10^9)
Output
對於每一組資料,輸出一個整數佔一行,表示答案。
Input示例
2
3 3 9 10
3 3 0 10
Output示例
10
0
Visual C++的執行時限為:1000 ms ,空間限制為:262144 KB
我的程式碼(C++)
win10
visual studio 2015
#include<iostream>
using namespace std;
int main() {
int T;
cin >> T;
for (int i = 0;i < T;i++) {
int a, b, d;
long n;
cin >> a >> b >> d >> n;
long c=0;
int ab = a*b;
if (ab < 10) {
if (ab == d){
c+=n;
}
}
else {//ab>9
int ab0 = ab % 10;
int ab1 = ab / 10;
int and=ab0+ab1;
if (and < 10){
if(d==and){
c+=n-1;
}
if(d==ab0){
c+=1;
}
if(d==ab1){
c+=1;
}
}
else{//and >9
if(d==ab0){
c+=1;
}
if(d==(and-10)){
c+=1;
}
if(d==(and-9)){
c+=n-2;
}
if(ab1==9){
if(d==0){
c+=1;
}
if(d==1){
c+=1;
}
}
else{
if(d=ab1+1){
c+=1;
}
}//endelse a!=9
}//endelse and>9
}//endelse ab>9
cout<<c<<endl;
}
return 0;
}
結果是Wrong Anwser。
請問錯誤在於哪裡?