C++ 台中區 106-4 數字序號轉換為雜湊表中對應的數字位置

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

string str;

int main(){
    int sum=0,tmp=0;
    cin>>str;
    for(int i=0;i<str.size()/3*3;i+=3){
        tmp=0;
        if(i&1){
            for(int j=2;j>=0;j--){
                tmp=int(str[i+j]-'0')+10*tmp;
            }
        }else{
            for(int j=0;j<3;j++){
                tmp=int(str[i+j]-'0')+10*tmp;
            }
        }
        sum=(sum+tmp)%997;
    }
    tmp=0;
    if((str.size()/3*3)&1){
        for(int i=str.size()-1;i>=str.size()/3*3;i--){
            tmp=int(str[i]-'0')+10*tmp;
        }
    }else{
        for(int i=str.size()/3*3;i<str.size();i++){
            tmp=int(str[i]-'0')+10*tmp;
        }
    }
    sum=(sum+tmp)%997;
    cout<<sum;
    return 0;
} 

發佈留言