恒大互联网金融笔试编程题——数组排序
来源:互联网 发布:厦门大学网络远程教育 编辑:程序博客网 时间:2024/05/17 13:39
数组{2,20,24,8,89}保持原子性,组成最大的数是 89824220
给一个数组,求能组成的最大数
#include <iostream>using namespace std;int main(){ int getFirstNum(int n); bool compare(int n, int m); int a[7] = {2, 5, 24, 20, 8 ,89, 87}; int i; int j; int n = 7; // 数组长 int temp; for(i = 0; i < n-1; i++) { for(j = 0; j < n-1; j++) { if(compare(a[j], a[j+1]) == false) //compare做比较,如果是False则交换位置 { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } for(i = 0; i < n; i++) { cout<<a[i]<<" "; } return 0;} int getFirstNum(int n) //获取n的首位{ if(n < 0) { return 0; } while(n >= 10) { n /= 10; } return n;}bool compare(int n, int m){ if(n == m) //两个数相同,不改变位置 { return true; } if(getFirstNum(n) > getFirstNum(m)) { return true; } if(getFirstNum(n) < getFirstNum(m)) { return false; } else //两个数首位相同,比较下一位,递归 { int sum_n = getFirstNum(n); int sum_m = getFirstNum(m); int nn = n; int mm = m; while(nn) { sum_n *= 10; nn /= 10; } sum_n /= 10; while(mm) { sum_m *= 10; mm /= 10; } sum_m /= 10; return compare(n - sum_n == 0 ? getFirstNum(n) : n - sum_n, m-sum_m == 0 ? getFirstNum(m) : m-sum_m); //n-sum_n的结果为n去掉首位,如果结果为0,则取n的首位 例如2和21 23比较,应该是23 2 21的结果 }}
0 0
- 恒大互联网金融笔试编程题——数组排序
- 互联网金融还是大数据金融
- 互联网金融三大类型
- 互联网金融无法做大
- 大数据风控 ——互联网消费金融的必由之路
- 金融科技&大数据产品推荐:91征信——用互联网改变征信
- 面试题笔试题——数组排序交换次数
- 金融科技&大数据产品推荐:蜜蜂+蜜罐报告——基于互联网大数据的风控技术服务平台
- 网易笔试编程题——两种排序方法
- 大数据征信应用与启示 ——以美国互联网金融公司 ZestFinance为例
- 大数据征信应用与启示 ——以美国互联网金融公司 ZestFinance为例
- 金融科技&大数据产品推荐:蜂巢——数据科学驱动的互联网风控解决方案
- 递归排序编程笔试题
- 互联网金融 盘点2013年互联网十大关键词
- 【笔试/面试】—— 数组中第二大的数
- 笔试题4——数组中第二大的数
- 互联网金融现状与趋势——王斌
- 阿里服务互联网金融的关系数据库——OceanBase
- github常见操作和常见错误!错误提示:fatal: remote origin already exists.
- 51nod-【1305 Pairwise Sum and Divide】
- Hibernate中cascade和inverse的作用
- Python 标准库 —— string
- C游戏开发中的小函数
- 恒大互联网金融笔试编程题——数组排序
- 2016—10-27 复习
- hdu 1016 Prime Ring Problem(DFS)
- linux学习 day1
- git提交代码github使用指南
- Fastboot功能详解
- Hibernate4.x之Session--常用方法
- 从零开始学JDBC--1.10 资源释放代码的优化
- Android技巧之相对高度使用