百炼OJ - 1001 - Exponentiation
题目链接
哇一遍AC的感觉也太爽了吧:)
#include <stdio.h>
#include <string.h>
int times=0;
char *myCalc(char source[1000], char s[1000], int times)
{
if( times == 0 ) return s;
int last=0,a=strlen(source),b=strlen(s);
char res[1000]={0};
for(int i=0;i<(a+b-1);i++) // times
{
int temp=last,first,end;
if( i < a )
{
first = 0;
end = i+1;
}
else if( i < b )
{
first = 0;
end = a;
}
else
{
first = i-b+1;
end = a;
}
for(int j=first;j<end;j++)
{
temp += (source[j]-'0')*(s[i-j]-'0');
}
res[i] = temp%10 + '0';
last = temp/10;
}
if( last != 0 ) res[a+b-1] = last+'0';
//puts(res);
return myCalc(source,res,times-1);
}
int main()
{
char input[10];
while( scanf("%s %d",input,×) != EOF )
{
int num=0,points = 0,flag = 0;
char sum[1000] = {0};
for(int i=strlen(input)-1;i>=0;i--)
{
if(input[i] == '0' && flag == 0)continue;
else if(flag == 0) flag = 1;
if(input[i] == '.')
{
flag = 2;
continue;
}
sum[num++] = input[i];
if(flag == 1) points ++;
}
if( flag != 2 ) points = 0;
for(int i=strlen(sum)-1;i>=0;i--)
{
if(sum[i] == '0')
sum[i] = 0;
else break;
}
//printf("%d %s\n",points,sum);
char *results = myCalc(sum,sum,times-1);
if( strlen(results) < points*times )
{
printf(".");
for(int i=0;i<(points*times-strlen(results));i++)
printf("0");
}
for(int i=strlen(results)-1;i>=0;i--)
{
if( (i+1) == points*times )
printf(".");
printf("%c",results[i]);
}
printf("\n");
}
return 0;
}
百炼OJ - 1001 - Exponentiation的更多相关文章
- POJ 1001 Exponentiation(大数运算)
POJ 1001 Exponentiation 时限:500 ms 内存限制:10000 K 提交材料共计: 179923 接受: 43369 描述:求得数R( 0.0 < R < ...
- 百炼1001: Exponentiation 解题
链接:http://bailian.openjudge.cn/practice/1001/ 思路 乍一看是很简单的题目,但是答案必须高精度输出,因此需要手动实现一个高精度运算方法.如果直接使用int, ...
- [POJ 1001] Exponentiation C++解题报告 JAVA解题报告
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 126980 Accepted: 30 ...
- [POJ] #1001# Exponentiation : 大数乘法
一. 题目 Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 156373 Accepted: ...
- POJ 1001 Exponentiation 无限大数的指数乘法 题解
POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...
- poj 1001 Exponentiation 第一题 高精度 乘方 难度:1(非java)
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 138526 Accepted: 33859 ...
- 九度oj 1001 A+B for Matrices 2011年浙江大学计算机及软件工程研究生机试真题
题目1001:A+B for Matrices 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:15235 解决:6172 题目描述: This time, you are supposed ...
- 九度OJ 1001:A+B for Matrices
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:17682 解决:7079 题目描述: This time, you are supposed to find A+B where A and ...
- 北大OJ 1001题
题目:输入一序列的正实数和幂次(正整数)对,然后打印结果(具体的比这个精细) 这道题是关于大数计算的(大数求幂),从开始建立思路,到写代码.调式到最后被AC以及最终的优化,总共用了差不多一天的时间.开 ...
随机推荐
- Nuxt服务端使用Axios调用接口时传递cookies
个人博客 地址:http://www.wenhaofan.com/article/20190321183709 介绍 在做单点登录时,后端需要根据cookie获取登录用户,由于前端项目使用了Nuxt做 ...
- BZOJ4668 冷战(LCT维护最小生成树)
BZOJ4668 冷战(LCT维护最小生成树) 题面 自己找去 HINT 这道题就是动态加边,然后查询u,v两点最早什么时候联通,强制在线.思考一下,最早什么时候联通不就等同于维护最小生成树吗(把这条 ...
- 0级搭建类002-Oracle Linux 8.x安装(OEL 8.0) 公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- Java中基本数据类型byte的溢出问题
Java中基本数据类型byte的溢出问题 问题源于:https://www.cnblogs.com/HuoHua2020/p/12326631.html 定义两个byte类型的数据,将其之和赋值给一个 ...
- 编辑当前目录及其子目录,对比指定文件大小 (bat)
@echo off :: 设置对比大小校验(单位为kb) set COMPARE=100 ::指定起始文件夹 cd %~dp0/ set DIR_PATH=%cd% :: 输出文件目录 set RES ...
- PIE-SDK For C++栅格数据集的读取
1.功能简介 栅格数据包含很多信息,在数据的运用中需要对数据的信息进行读取,目前PIE SDK支持多种数据格式的数据读取,下面对栅格数据格式的数据读取功能进行介绍. 2.功能实现说明 2.1 实现思路 ...
- phpstorm实现分屏展示代码
第一种 选择你要分屏的页面 [Window]—>[Editor Tabs]—>[Split Vertically]or[Split Horizontally] 第二种 把鼠标箭头放到你想 ...
- SpringBoot学习- 10、设计用户角色权限表
SpringBoot学习足迹 前几节已经基本了解了SpringBoot框架常用的技术,其他的消息队列,定时器等技术暂时用不到,真正项目中如果基于微信系,阿里系开发的话,还要了解平台专用的技术知识,学习 ...
- Tomcatd断点调试Debug
ideaDebug设置
- HTML span标签
span:行内标签,不会换行用于:组合文档中的行内元素.元素和文档的组合