NewCode----给定两个数R和n,输出R的n次方

参考链接

输入描述:
多组测试用例,请参考例题的输入处理 输入每行一个浮点数 R 其中0.0 < R <99.999, 一个整数 n 其中0 < n <=25
输出描述:
输出R的n次方
输入例子1:
95.123 12 0.1 1
输出例子1:
548815620517731830194541.899025343415715973535967221869852721 0.1
解题思路

因为涉及到的操作数可能会非常大,超出c语言本身能表示的数的大小以及精度,所以思路大概是这样的:

1、对输入的处理,因为第一个书可能是小数,小数相乘我们要记录下小数点的位置,所以第一个输入按字符串格式读入,通过比较找出小数点的位置。
2、对R的处理,小学时我们学小数的计算的时候,都是先转换成整数,记下两个乘数的小数点的位置,最后再加上小数点,所以先把R处理成整数,并通过小数点的位置计算出最后结果的小数位数。
3、计算,计算按大数计算的方式进行计算。
4、输出,输出的时候要检查最后结果是否小于1,小于1的话,要补充足够的0
#include <stdio.h>
#include <string.h>int len; //total length of exponentiation result.
int product[126] = {0}; // storing result, at most length 5*25 + 1 = 126void multiply(int a[], int n)
{int i;int carry = 0; // a carry number in multiplyingfor (i = 0; i < len; i++){int temp = a[i]*n + carry;a[i] = temp % 10;carry = temp / 10;      }while (carry){a[i++] = carry % 10;carry /= 10;}len = i;
}int main(int argc, char* argv[])
{int n;  // power nchar s[6]; // real number R, at most the length is 6while (scanf("%s %d", s, &n) != EOF){int position=0, i=0, num=0, j=0;for (i=0; i<strlen(s); i++) {if (s[i] == '.'){position = (strlen(s) - 1 - i) * n; // calculate decimal point position after R^n}else{num = num*10 + s[i] - 48; // transfer float to integer}       }// product calculation product[0]=1;len = 1;for (i = 0; i < n; i++){multiply(product, num);}// format outputif (len <= position) // product is less than 1{printf("0");printf("."); // print decimal pointfor (i=0; i<position-len; i++){printf("0"); // print zero between decimal point and decimal}j = 0;//while (product[j] == 0) // trim trailing zeros//{//    j++;//}for (i=len-1; i>=j; i--){printf("%d", product[i]);}}   else{j=0;while (product[j]==0 && j<position) // trim trailing zeros{j++;}for (i=len-1; i>=j; i--){if (i+1 == position) // cause index in C language starts from 0{printf(".");}printf("%d", product[i]);}}printf("\n");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何检测本计算机耗电量,如何查看电脑耗电量?鲁大师查看电脑使用功率的方法...

【www.xinr41319.cn--电脑网络】查看自己电脑的电源功率有两大好处&#xff0c;第一知道给台式电脑配置多大的电源&#xff0c;第二可以精确的算出&#xff0c;一台电脑&#xff0c;一天一般消耗多少电&#xff0c;那么小编教大家来查看一下自己电脑的功率是多少。我们可以要借…

【转载】COM小结

原文&#xff1a;http://blog.csdn.net/byxdaz/article/details/6595210 一、Com概念 所谓COM&#xff08;Componet Object Model&#xff0c;组件对象模型&#xff09;&#xff0c;是一种说明如何建立可动态互变组件的规范&#xff0c;此规范提供了为保证能够互操作&#xff0…

解决Dropbox无法连接的问题

同步共享服务Dropbox从6月18日开始再次遭到封锁&#xff0c;原因是DNS污染。Dropbox上次在2010年5月曾遭到IP封锁和网址关键字过 滤&#xff0c;2012年5月除文件外链功能外其它功能可正常访问&#xff1b;2014年2月全部功能都可以正常访问。中国正展开净网行动&#xff0c;文件…

求任意数的阶乘

这是笔试的第二题&#xff0c;求任意数的阶乘其实实质也就是大数相乘&#xff0c;很可惜没有在规定时间内完成这道题&#xff0c;估计这次笔试凉凉。 #include<iostream> using namespace std;int result[200] { 0 }; int N; void fun(int n) {int temp;int i;int carr…

RDLC报表系列一

1、报表项目搭建&#xff1a; 配置好后&#xff0c;单击Web服务URL:http://lg-20151517ryre/ReportServer 如果电脑系统打开的时候没有设置密码的话&#xff0c;此时打开有可能会出现需要登录名和密码。如出现此种情况可给Administrator设置密码。然后刷新当前页面就可以看大上…

.net 服务器自动执行,自动检测服务器使用流量并执行命令脚本

#codingutf-8limit_total0# limit_total 上传下载的流量限制&#xff0c;单位GB&#xff0c;如果不限制就是0&#xff0c;如果限制1T就是1024limit_in0# limit_in 下载的流量限制&#xff0c;单位GB&#xff0c;如果不限制就是0&#xff0c;如果限制1T就是1024limit_out0# limi…

Android APK是否需要预解压

今天在逛论坛的时候&#xff0c;发现有一个朋友问的问题。其主要目的&#xff0c;是想实现 玩家首次进入游戏的时候&#xff0c;或者新安装了版本的时候&#xff0c;对APK进行解压&#xff0c;写入SD卡。这样游戏运行过程中&#xff0c;将不会再从APK中读取资源。 以提高效率。…

C++开发秋招笔试题

第一题&#xff1a; 记得不太清了&#xff0c;凑合看吧&#xff01; 输入&#xff1a; 第一行&#xff1a;T 表示有T个测试用例 以下N行&#xff1a; 输入的T个测试用例 测试用例&#xff1a; 每个输入包含四个输入&#xff0c;a&#xff0c;b&#xff0c;c&#xff…

ADS-B显示终端5.9

更改日志 1 更新背景地图。增加了全国范围内的VOR电台、DME、NDB导航台信息&#xff0c;包含有坐标信息、代码信息、频率等内容。 VOR电台、DME、NDB导航台信息来自中国民航局公布的航行情况资料汇编。VOR、DME、NDB分别採用不同的图形绘制&#xff0c;目标均採用淡绿色画笔…

域名自动跳转不搭建服务器,宝塔搭建的服务器WEB系统环境如果做域名301跳转

宝塔搭建的服务器WEB系统环境如果做域名301跳转今天老蒋遇到一个网友&#xff0c;服务器WEB系统环境是用宝塔搭建的&#xff0c;搭建的网站绑定过WWW域名和不带WWW域名&#xff0c;他是希望能全部统一到WWW的域名&#xff0c;这里应该是他程序没有自带301跳转&#xff0c;如果是…

求两个字符串的最长公共子串

给出两个字符串&#xff0c;求出两个字符串的最长公共子串 #include<iostream> #include<string> using namespace std; int main() {string a, b;while (cin >> a >> b){if (a.size() > b.size())swap(a, b);string str_m;//存储最长公共子串for …

修改模型的原点

Mesh mesh 坦克.GetComponent<MeshFilter>().mesh; Vector3[] vertices mesh.vertices;foreach(vertices v in vertices ) {v new Vector3(要移动的距离)}mesh.vertices vertices; mesh.RecalculateBounds();转载于:https://www.cnblogs.com/mukeyang/p/4633085.html…

OpenCV Python教程(1、图像的载入、显示和保存)

本文是OpenCV 2 Computer Vision Application Programming Cookbook读书笔记的第一篇。在笔记中将以Python语言改写每章的代码。 PythonOpenCV的配置这里就不介绍了。 注意&#xff0c;现在OpenCV for Python就是通过NumPy进行绑定的。所以在使用时必须掌握一些NumPy的相关知识…

大华出入口管理系统H710服务器配置,DH-DSS-H710S2 大华出入口综合管理系统 停车场收费 支持人脸相机设备添加...

DH-DSS-H710S2 大华出入口综合管理系统 支持车辆列表展示&#xff0c;包括车辆编号、车牌、车场、车辆品牌、车辆类型、车身颜色、车主等信息 支持通过人员编号、姓名进行人员信息查询 支持打印小票与导出缴费信息 DH-DSS-H710S2DH-DSS-H710S2大华出入口综合管理系统DH-DSS-H71…

微软块级备份引擎服务器,文件级与块级备份区别

首先我们先来了解一下&#xff0c;什么叫做块级&#xff1f;什么叫文件级&#xff1f;1.块级概念&#xff1a;块级是指以扇区为基础&#xff0c;一个或我连续的扇区组成一个块&#xff0c;也叫物理块。它是在文件系统与块设备(例如&#xff1a;磁盘驱动器)之间。2.文件级概念&a…

通过物理映射往虚拟机中传输数据

1、在虚拟机管理界面&#xff0c;找到硬盘&#xff0c;双击 2、在跳出的页面中点击“映射” 3、在弹出的页面中将“以只读模式打开文件”选项勾去 4、选择是“”是 5、这个时候就看到电脑上出现了一个“Z盘”&#xff0c;此时就可以将需要复制进虚拟机的文件&#xff0c;复制…

Ubuntu12.04版本安装arm-linux-gcc 4.3.3

由于Ubuntu12.04是64位系统,如果安装4.3.3版本的arm gcc,系统将会找到,所以要让其可用,就要安装ia32-lib包,以便让系统使用32bit软件: apt-get install ia32-libs 由于我前面已将安装好了gcc 4.3.3并且设置好了环境变量,所以安装完上面以后就可以查看gcc信息了: arm-linux-gcc …

[Algorithm] 字符串匹配算法——KMP算法

1 字符串匹配 字符串匹配是计算机的基本任务之一。 字符串匹配是什么&#xff1f;举例来说&#xff0c;有一个字符串"BBC ABCDAB ABCDABCDABDE"&#xff0c;我想知道&#xff0c;里面是否包含另一个字符串"ABCDABD"&#xff1f; 许多算法可以完成这个任务&…

入门Git

本文是我在[实验楼]这个平台学习git时的第一篇学习笔记&#xff0c;现贴出来以飨大家&#xff01; git学习 1、git的配置 git的配置主要通过git config --global <配置名称> <配置的值>来对git进行配置 其中最常用的配置为&#xff1a; git config --global u…

小程序广告变现:探索创新路径实现盈利

随着移动互联网的不断发展&#xff0c;小程序作为一种轻量级应用形式&#xff0c;在用户中的普及程度不断提升。对于开发者而言&#xff0c;如何在小程序中实现盈利成为了一项挑战&#xff0c;而广告变现成为其中一种常见的经济模式。本文将深入探讨小程序广告变现的方式以及如…