【WA】【編碼】數數字-BSG白山極客挑戰賽Problem A-2016.05.20

peixn發表於2019-05-11

數數字

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。
請問錯誤在於哪裡?

相關文章