hdu 1001(分治求解)

#include <cstdio>
#include <iostream>

using namespace std;

int solve(int l, int r) {
if (l == r) return l;
return solve(l, ((l+r)>>1)) + solve(((l+r)>>1)+1, r);
}

int main() {
int n;
while (scanf("%d", &n) != EOF) {
int ans = solve(1, n);
printf ("%d\n\n", ans);
}
return 0;
}

 

posted on 2012-04-03 19:28  Try86  阅读(197)  评论(0编辑  收藏  举报