整数循环节求和-华为机试题
来源:互联网 发布:php set timezone 编辑:程序博客网 时间:2024/04/30 01:22
/*
整数之循环节点求和
描述:
任意一个不是用完全相同数字组成的四位数,如果对它们的每位数字重新排序,组成一个较大的数和一个较小的数,然后用较大数减去较小数,差不够四位数时在前面补零,类推下去,最后将变成一个固定的数:6174。
例如:4321-1234=3087 8730-378=8352 8532-2358=6174 7641-1467=6147。
如果K位数也照此办理,它们不是变成一个数,而是在几个数字之间形成循环,例如对于五位数54321: 54321-12345=41976 97641-14679=82962 98622-22689=75933 97533-33579=63954 96543-34569=61974 97641-14679=82962
我们把82962 75933 63954 61974称作循环节。在前面6174中,循环节认为只有一个数。
请输出这些循环节之和,最终结果可能需要使用64位的整型才能存放。当没有循环节,输出0,例如:输入33333,输出0。
运行时间限制: 无限制
内存限制: 无限制
输入:
输入为一个正整数,取值范围位0~0xffffffff
输出:
输出为各循环节的和
样例输入:
3214
样例输出:
6174
*/
思路:
1.拆分每一位的数到vector
2.vector排序得到最大的数、最小的数
3.递归(出口条件,差值重复出现)
#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>using namespace std;void cycNum(long long n, vector<long long>& s){ vector<long long> temp; int size=0; long long max=0, min=0,result; while(n) { temp.push_back(n % 10); size++; n = n/10; } sort(temp.begin(), temp.end()); for(int i = 0; i < size; i++) { min = min * 10 + temp[i]; max = max * 10 + temp[size - i -1]; } result = max - min; if(result == 0) { cout<<"0"<<endl; return; } if( find(s.begin(), s.end(), result) == s.end()) { s.push_back(result); cycNum(result, s); } else { vector<long long>::iterator iter = find(s.begin(), s.end(), result) ; long long result1 =0; for( ;iter != s.end(); iter++) { result1+=*iter; } cout<<result1<<endl; return; }}int main(){ long long n; vector<long long> s; cin>>n; cycNum(n, s);}
0 0
- 整数循环节求和-华为机试题
- 2016 华为机试题之整数循环节求和
- 华为机试题--数列求和
- 华为机试题:大数求和
- 华为机试题:整数排序
- 华为机试题:循环报数
- 华为机试题-循环报数
- 华为机试题——整数减法
- 华为机试题: 整数相除
- 2016华为笔试题——整数之循环节点求和
- 整数之循环节点求和
- 华为笔试题——循环节求和
- 2016华为机试题:循环报数
- 华为机试题--7.提取不重复的整数
- 华为机试题:提取不重复的整数
- 《华为机试在线训练》之去空格后整数求和
- 华为机试题——字符串循环转换
- 整数求和
- Java中分割字符串
- Android Studio中使用git托管代码到gitlab
- PE 105 Special subset sums: testing (位运算枚举子集)
- Python CF入门实验
- Codeforces Round #387 (Div. 2) Winter Is Coming(贪心)
- 整数循环节求和-华为机试题
- HTML5 & CSS3初学者指南(1) – 编写第一行代码
- 第十五周-OJ-D字符串长度
- 解决服务器windows主机显示本地连接网络电缆没插好问题
- java springmvc mybaits maven shiro
- 内表行操作逻辑
- 字节流与字符流的区别
- 其他应收款的贷方是什么意思?借方又表示什么意思?
- HDU 3529 Bomberman - Just Search!(DLX可重复覆盖)