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.pswp.cn/news/375781.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375781.shtml
英文地址,請注明出處:http://en.pswp.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;而廣告變現成為其中一種常見的經濟模式。本文將深入探討小程序廣告變現的方式以及如…