[华为机试练习题]60.水仙花数
生活随笔
收集整理的這篇文章主要介紹了
[华为机试练习题]60.水仙花数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
描述:
水仙花數又稱阿姆斯特朗數。 水仙花數是指一個n 位數( n≥3 ),它的每個位上的數字的n 次冪之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153) 求輸入的數字是否為水仙花數練習階段:
初級代碼
/*--------------------------------------- * 日期:2015-07-05 * 作者:SJF0115 * 題目:水仙花數 * 來源:華為機試練習題 -----------------------------------------*/ #include <iostream> #include "oj.h" #include <vector> using namespace std;// 分解 vector<int> NumSplit(int num){vector<int> result;if(num == 0){result.push_back(0);return result;}//ifif(num < 0){return result;}//ifint tmp = num;while(tmp){result.insert(result.begin(),tmp % 10);tmp /= 10;}//whilereturn result; } // N次冪 unsigned int NOfNum(int num,int size){if(size <= 0){return 0;}//ifunsigned int result = 1;for(int i = 0;i < size;++i){result *= num;}//forreturn result; }// 功能:判斷輸入 nValue 是否為水仙花數 // 輸入: nValue為正整數 // 輸出:無 // 返回:如果輸入為水仙花數,返回1,否則返回0 unsigned int IsDaffodilNum(unsigned int nValue){if(nValue <= 0){return 0;}//ifvector<int> numvec = NumSplit(nValue);int size = numvec.size();int result = 0;for(int i = 0;i < size;++i){result += NOfNum(numvec[i],size);if(result > nValue){return 0;}//if}//forif(result == nValue){return 1;}//ifreturn 0; }總結
以上是生活随笔為你收集整理的[华为机试练习题]60.水仙花数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个奇怪的注意事项TNS-12545 T
- 下一篇: sharepoint 2013基于AD的