私はコード力でsimple questionをコーディングしていました。これは次のようになります。与えられたコードの時間複雑さを理解する
Vasyaにはn組の靴下があります。毎日の朝、Vasyaは学校に行く前に靴下を履かなければなりません。彼が夕方に家に帰ってくると、Vasyaは使用済みの靴下を脱いで離します。毎m日(数m、2m、3m、...)のママは、Vasyaに一組の靴下を購入します。彼女は夕方に遅くなるので、Vasyaは翌日までに新しい靴下を履くことができません。 Vasyaが靴下を使い果たすまで何日連続して渡されますか?
入力
単一ラインは、2つの整数n及びm(100≤1≤N; 100≤2≤M)を含む、スペースで区切られています。
出力
印刷単一の整数 - 問題への答え。時間の複雑さがどうあるべきか
int main()
{
int res,i,n,m;
cin >> n >> m;
i = 1;
res = n;
while(res >= i*m)
{
res++;
i++;
}
cout << res;
return 0;
}
:
私のソリューションは、このですか?私たちがmのステップで増加しているので、O(n)は間違いありません。ログn(ベースm)ですか?しかし、元のnも時間とともに増加します!
いくつかの理由を入れてください。
[Big O、どのように計算/近似しますか? (http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it) –