百炼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以及最终的优化,总共用了差不多一天的时间.开 ...
随机推荐
- 1级搭建类103-Oracle 12c 单实例 FS(12.2.0.1+RHEL 7)公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- source insight增加tab标签页的方法之sihook
1.效果如下 2.方法见如下博客 http://www.cnblogs.com/Red_angelX/archive/2013/01/23/2873603.html
- canvas-文字粒子化(小程序)
有2张画板,1张渲染文字为获取文字数组,另一张用来渲染粒子根据拿到的数组. step1:渲染文字,根据canvasGetImageData拿到rgba数组 step2:遍历rgba数组拿到粒子的坐标 ...
- vjudge I - Vladik and fractions 一道小学生的提。
原题链接:https://vjudge.net/contest/331993#problem/I Vladik and Chloe decided to determine who of them i ...
- Coxeter积分计算
\begin{align*}&\int_0^{\frac{\pi}{3}}{\arccos \left( \frac{1-\cos x}{\text{2}\cos x} \right) dx} ...
- Intellij IDEA史上最全快捷键大全
古人有云:工欲善其事,必先利其器,要是只是手握利器,而不能发挥其最大的效益,那无异于赤手空拳,对敌对垒. 那古人所云,未得其精髓,只能为碎语闲言尔. 自动代码 常用的有fori/sout/psvm+T ...
- python3练习100题——032
链接:http://www.runoob.com/python/python-exercise-example32.html 题目:按相反的顺序输出列表的值. 我的代码: for i in li[:: ...
- 2020牛客寒假算法基础集训营5 B.牛牛战队的比赛地 (二分/三分)
https://ac.nowcoder.com/acm/contest/3006/B 三分做法 #include<bits/stdc++.h> #define inf 0x3f3f3f3f ...
- AntDesign(React)学习-3 React基础
前面项目已经建起来了,但是没有React基础怎么办,从头学习,这个项目使用的是基于React16.X版本的几种技术集成,那么我们就从网上找一些相关的资料进行研究,我的习惯是用到哪学到哪. 一.先看一些 ...
- [ C++ ] 常用位运算技巧
1.除以二 a >> 1 2.二的n次方 1 << n 3.十进制转2进制 x&(1<<i) 持续更新