华为模拟题二求一个int型整数的两种递减数之和
来源:互联网 发布:怀孕37周b超标准数据 编辑:程序博客网 时间:2024/05/20 04:15
给出一个整数(负数使用其绝对值),输出这个整数中的两种递减数(1.最大递减数;2.递减数中各位数之和最大的数)之和。
递减数:一个数字的递减数是指相邻的数位从大到小排列的数字,不包含相邻的数位大小相同的情况。
最大递减数:所输入整数的所有递减数中值最大的一个。 如: 75345323,递减数有:75,753,53,53,532,32。那么最大的递减数为753。
各位数字之和最大的递减数: 如75345323中的各递减数:75各位数之和=12(7+5=12),753各位数之和=15(7+5+3=15),53各位数之和=8(5+3=8),532各位数之和=10(5+3+2=10),32各位数之和=5(3+2=5)。那么各位数字之和最大的递减数为753。
#include<iostream>#include<string>#include<cstdlib>#include<vector>#include<cmath>#include<map>#include<algorithm>using namespace std;int main(){int val;char sval[32];cin>>val;if (val<0){val=-val;}if (abs(val)<10){cout<<0<<endl;return 0;}_itoa(val,sval,10);int len=strlen(sval);vector<int> denum;vector<int> gesum; multimap<int,int> mi;for (int i=0;i<len-1;i++){vector<int> vi;for (int j=i;j<len;j++){if (sval[j]>sval[j+1]){vi.push_back(sval[j]-'0');}else{if (i!=j){vi.push_back(sval[j]-'0');}break;}}for (int k=0;k<vi.size();k++){int times=vi.size()-1-k;for (int l=0;l<times;l++){int sum=0;int gsum=0;int index=k;int e=l+1;for (int h=0;h<=(l+1);h++){sum+=vi[index]*pow(10.0,(int)e);gsum+=vi[index];e--;index++;}denum.push_back(sum);gesum.push_back(gsum);mi.insert(make_pair(gsum,sum));}}vi.clear();}sort(denum.begin(),denum.end());sort(gesum.begin(),gesum.end());int m2=gesum[gesum.size()-1];multimap<int,int>::iterator it=mi.begin();while (it->first!=m2){++it;}int m3=it->second;int summax=denum[denum.size()-1]+m3;cout<<summax;cout<<endl;return 0;}
输出结果=最大递减数+各位数之和最大的递减数。(1506=753+753)
0 0
- 华为模拟题二求一个int型整数的两种递减数之和
- 求一个int型整数的两种递减数之和(java)--2015华为机试题
- 求一个int型整数的两种递减数之和
- 面试题4——求一个int型整数的两种递减数之和
- 求一个int型整数的两种递减数之和
- 2015华为实习生招聘机试模拟考1之求一个int型证书的两种递减数之和
- 一个整数的各位数之和
- 计算一个整数的各位数之和
- 笔试题:写一个有序整数数组两两之和等于某个数所有组合
- 随机产生两组整数,每组整数中元素互不相同,这两组数按值递增有序。设计程序,将这两组数合并成按值递减有序的一组数,要求合并的新的一组数中,相同的元素只有一个。
- 两数之和三 设计一个类,包含如下两个成员函数:Save(int input)插入一个整数到一个整数集合里。Test(int target)检验是否存在两个数和为输入值。如果存在着两个数,则返回true
- 【lintcode】两数之和、三数之和、最接近的三数之和、四数之和小结
- 编写一个函数fan(int m),计算任一输入的整数的各位数字之和。
- 求从一个整数数组中两个数之和为m的两个数
- 字符串中找出递减数,输出最大字串和各数位之和最大的字串之和
- 判断某整数是否为两数平方之和
- 读博客”求一个整数中二进制数1的个数“两种方法分析
- 判断一个数是不是2的整数次幂(两种方法)
- POJ 3080 Blue Jeans(暴力)
- 我的自建博客成立啦!wxtlife.com
- 最佳实践:针对性能问题的主动型数据收集 (文档 ID 1549179.1)
- Linux登录验证机制、SSH Bruteforce Login学习
- KNN算法
- 华为模拟题二求一个int型整数的两种递减数之和
- 数据结构-括号匹配程序
- 解决Ubuntu14.04 64bit 安装AndroidSDK后adb命令无法使用问题
- SAP的逻辑数据库
- 网络技术
- 利用Python实现KNN
- ZOJ 2339 Hyperhuffman
- 第二章题目
- ListView item点击事件失效