首页 > 代码库 > 【HDOJ】4704 Sum
【HDOJ】4704 Sum
数学题。f(n) = 2^(n-1) mod (1e9+7)。
1 #include <cstdio> 2 3 #define MAXN 100005 4 5 char buf[MAXN]; 6 __int64 phi = 1e9+6; 7 __int64 mod = 1e9+7; 8 9 __int64 power2(__int64 n) {10 __int64 ret = 1, base = 2;11 12 --n;13 while (n) {14 if (n & 1)15 ret = ret * base % mod;16 base = base*base%mod;17 n >>= 1;18 }19 return ret;20 }21 22 int main() {23 __int64 tmp;24 __int64 i, j;25 26 while (scanf("%s", buf) != EOF) {27 tmp = 0;28 for (i=0; buf[i]; ++i) {29 tmp = 10*tmp + (buf[i]-‘0‘);30 tmp %= phi;31 }32 tmp += phi;33 tmp = power2(tmp);34 printf("%I64d\n", tmp);35 }36 37 return 0;38 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。