QDUOJ-20:开采金币(大数乘法)
来源:互联网 发布:kali linux更新命令 编辑:程序博客网 时间:2024/06/10 09:01
Problem 20: 开采金币
Time Limit:1 Ms| Memory Limit:128 MB
Difficulty:1
Description
《开采金钱》是《经营餐厅》系列中的一个经典游戏,他考验的是人的操作和策略。
游戏的开始会给出一块无限大的平原,玩家要在平原上采集金钱和建造开采矿物的矿塔。每一次操作可以是建造一座矿塔,或采集金币。采集金币的操作是在现有的每个矿塔中各采集一个金钱,比如现有10个矿塔,则可以采集到10个金币。现给出操作的次数s,求最多可以采集到的金币数量。
游戏的开始会给出一块无限大的平原,玩家要在平原上采集金钱和建造开采矿物的矿塔。每一次操作可以是建造一座矿塔,或采集金币。采集金币的操作是在现有的每个矿塔中各采集一个金钱,比如现有10个矿塔,则可以采集到10个金币。现给出操作的次数s,求最多可以采集到的金币数量。
Input
第一行只有一个正整数s,表示小Q有s次操作的机会。
Output
一个数,表示小Q最多能够开采的金币总数。
Sample Input
1
Sample Output
0
Hint
样例中,小Q要么建一座矿塔,要么让所有采一点金钱(但是没有矿塔),所以不可以获得金钱,输出0。
20% : s <= 20
40% : s <= 10000
100% : s <= 10^100
20% : s <= 20
40% : s <= 10000
100% : s <= 10^100
思路:
普通大数问题, 用到了大数的乘法(平方)和除法,难度不大,留作模板;
但这儿有一个小技巧, 可以先平方,再除4,简化大数运算步骤.
代码:
#include <stdio.h>#include <string.h>#define N 100000int main(){char a[N], re[N];memset(re, 0, sizeof(re));scanf("%s", a);// 大数输入int i, j, len = strlen(a), bz = 0, mx = 0;int jw = 0, t, st = 0, nw = 0;for(i = 0; i < len; i ++) a[i] -= '0';for(i = len - 1; i >= 0; i --){// 计算 re = a ^ 2for(j = len - 1; j >= 0; j --){jw += (a[i] * a[j] + re[nw]);re[nw ++] = jw % 10;jw /= 10;}while(jw){re[nw ++] = jw % 10;jw /= 10;}st ++;if(nw > mx) mx = nw;nw = st;}while(jw){re[mx ++] = jw % 10;jw /= 10;}jw = 0;for(i = mx - 1; i >= 0; i --){// 计算 re / 4t = jw * 10 + re[i];jw = t % 4;re[i] = t / 4;}while(!re[--mx]) ;// 消除大数前边的0for(i = mx; i >= 0; i --) printf("%c", re[i] + '0');printf("\n");return 0;}
- QDUOJ-20:开采金币(大数乘法)
- 大数乘法(模版)
- Product(大数乘法)
- 大数乘法(一)
- 大数乘法(C++)
- 大数乘法(二)
- 大数乘法(模板)
- Tyvj 1316 小Q玩游戏——开采金币
- Tyvj 1316 小Q玩游戏——开采金币
- 大数乘法(加法)运算
- Bull Math(大数乘法)
- 大数的乘法(正数)
- UVA Product(大数乘法)
- Product(大数乘法模板)
- 大数 (整数)乘法,除法
- 大数运算(大数加法and大数乘法)
- 树莓派开采莱特币(Litecoin)
- 大数乘法
- what is Cardinality?
- I/O多路复用
- nginx php-fpm 输出php错误日志
- Java里数字转字符串前面自动补0的实现
- Java获取某年第一天与最后一天时间方法
- QDUOJ-20:开采金币(大数乘法)
- 风雨20年:我所积累的20条编程经验
- android apk 反编译方法
- Ubuntu 12.04 Remmina 远程桌面客户端 控制另外一台pc机
- Spring MVC POST中文乱码解决方案
- 经典JavaScript正则表达式实战
- 售票小程序,通过多线程实现多窗口售票
- domob记录
- Linux 进程[task_struct]的本质