题目链接

哇一遍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,&times) != 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的更多相关文章

  1. POJ 1001 Exponentiation(大数运算)

    POJ 1001 Exponentiation 时限:500 ms   内存限制:10000 K 提交材料共计: 179923   接受: 43369 描述:求得数R( 0.0 < R < ...

  2. 百炼1001: Exponentiation 解题

    链接:http://bailian.openjudge.cn/practice/1001/ 思路 乍一看是很简单的题目,但是答案必须高精度输出,因此需要手动实现一个高精度运算方法.如果直接使用int, ...

  3. [POJ 1001] Exponentiation C++解题报告 JAVA解题报告

        Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 126980   Accepted: 30 ...

  4. [POJ] #1001# Exponentiation : 大数乘法

    一. 题目 Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 156373   Accepted: ...

  5. POJ 1001 Exponentiation 无限大数的指数乘法 题解

    POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...

  6. poj 1001 Exponentiation 第一题 高精度 乘方 难度:1(非java)

    Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 138526   Accepted: 33859 ...

  7. 九度oj 1001 A+B for Matrices 2011年浙江大学计算机及软件工程研究生机试真题

    题目1001:A+B for Matrices 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:15235 解决:6172 题目描述: This time, you are supposed ...

  8. 九度OJ 1001:A+B for Matrices

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:17682 解决:7079 题目描述: This time, you are supposed to find A+B where A and ...

  9. 北大OJ 1001题

    题目:输入一序列的正实数和幂次(正整数)对,然后打印结果(具体的比这个精细) 这道题是关于大数计算的(大数求幂),从开始建立思路,到写代码.调式到最后被AC以及最终的优化,总共用了差不多一天的时间.开 ...

随机推荐

  1. DFS/BFS-A - Red and Black

    A - Red and Black There is a rectangular room, covered with square tiles. Each tile is colored eithe ...

  2. C#在运行时自动引入正确的Dlls

    设置程序Dlls的搜索路径 1.导入Native函数 /// <summary> /// 设置Dlls的搜索路径 /// </summary> /// <param na ...

  3. java学习笔记之集合—ArrayList源码解析

    1.ArrayList简介 ArrayList是一个数组队列,与java中的数组的容量固定不同,它可以动态的实现容量的增涨.所以ArrayList也叫动态数组.当我们知道有多少个数据元素的时候,我们用 ...

  4. Wormholes POJ - 3259 spfa判断负环

    //判断负环 dist初始化为正无穷 //正环 负无穷 #include<iostream> #include<cstring> #include<queue> # ...

  5. TensorFlow入门(常量变量及其基本运算)

    1.tensorflow常量变量的定义 测试代码如下: # encoding:utf-8 # OpenCV tensorflow # 类比 语法 api 原理 # 基础数据类型 运算符 流程 字典 数 ...

  6. 其他 - PotPlayer - 基础快捷键总结

    概述 尝试使用 potplayer 的快捷键 背景 最近需要反复看录像 回看 慢速 其他各种 没错, 我的需求就是 游戏复盘... 环境 os win10.1903 player potplayer. ...

  7. 机器学习作业(八)异常检测与推荐系统——Matlab实现

    题目下载[传送门] 第1题 简述:对于一组网络数据进行异常检测. 第1步:读取数据文件,使用高斯分布计算 μ 和 σ²: % The following command loads the datas ...

  8. 在cc.EventListener.TOUCH_ONE_BY_ONE事件中判断拖动物离哪边近飞向那边

    需将拖动物坐标和要飞向物坐标转化为整个layer的坐标,因为人们判断远近是根据整个layer来看的.

  9. tp3.2框架关闭日志记录

    在config.php中阿计入如下配置: 'LOG_RECORD' => false, // 默认不记录日志 'LOG_TYPE' => 'File', // 日志记录类型 默认为文件方式 ...

  10. 如何面试QA(面试官角度)

    面试是一对一 或者多对一的沟通,是和候选人 互相交换信息.平等的. 面试的目标是选择和雇佣最适合的人选.是为了完成组织目标.协助人力判断候选人是否合适空缺职位. 面试类型: (1)预判面试(查看简历后 ...