マトリョーシカ的日常

ワクワクばらまく明日のブログ。

二分する立場とそれらの理解(SRM 262 div2 level1)

下何桁は余りを用いる。

http://instagr.am/p/WZUNORhBAd/



TopCoder Statistics - Problem Statement


 正答率90%の問題。整数の下二桁を00に置き換え1ずつ増やしていく。整数がfactorで割り切れるときの下二桁の値をstring型で返せ。
 例:
 整数275、 factor 5→ "00" (200%5=0)
 整数1021、 factor 11→ "01" (1001%11=0)

#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
 class DivToZero{
    public:
     string lastTwo(int num,int factor){
         int N,i;
         stringstream ss;
         ss.fill('0');
         ss.width(2);
         N=num-num%100;
         
         for(i=0;i<100;i++){
             if((N+i)%factor==0) break;
         }
         cout <<N<<":"<<i<<":"<<factor<< endl;
         ss<<i;
         cout<<ss.str()<<endl;
         return ss.str();
         
     }
};

int main(){
    DivToZero ob1;
    int n=234,f=7;
    ob1.lastTwo(n,f);
    return 0;
}
  • stringstreamを使うと、int型とstring型の変換ができる。
  • あらかじめssには0を埋めておく。