整数v,从高位到低位,取c位数,得到最大数 (其中:v>=10^c)
题目如上,例子v=22312324,c=3,求得最大数为334。
用自己的想法实现了一遍,如果你有更好的方法的话,欢迎不吝赐教。
我的思路是,先将整数v按位存入一个数组,数组低位为整数高位,如num[]={2,2,3,1,2,3,2,4}。求得最大数有c位数,v_max[]={……}。
每次从数组num[]取得一位最大数,存入v_max[]相应位。如求v_max[0],因为v_max有c位,所以可取num[0]~num[len-c-0]中的最大数(len为v的位数),记录最大数下标为num_i,再求v_max[1],可取num[num_i+1]~num[len-c-1]中取最大数,……如此取c个数就得到v_max[]。
#include<iostream>
using namespace std; void fun(const int num[],int len,int v_max[],int c,int max_i,int num_i)
{
if(max_i==c) return;
int j=num_i;
int temp=-;
for( ;j<=len-c+max_i;j++){
if(temp<num[j]){
temp=num[j];
num_i=j;
}
}
v_max[max_i]=temp;
fun(num,len,v_max,c,++max_i,++num_i);
}
int main()
{
int v,c,num[],v_max[],len; //len为整数v的位数,v_max[]保存最大数
v=;
int v1=v;
len=; while(v1>){ /*将整数v按位存入数组num[]*/
num[len++]=v1%;
v1/=;
}
for(int i=;i<len/;i++)
swap(num[i],num[len--i]); cout<<"v="<<v<<endl;
while(cin>>c){
if(c>len){
cout<<"error:v<10^c"<<endl;
}
else{ fun(num,len,v_max,c,,);
for(int i=;i<c;i++)
cout<<v_max[i];
cout<<endl;
}
} }
整数v,从高位到低位,取c位数,得到最大数 (其中:v>=10^c)的更多相关文章
- delphi 关于 "高位" 与 "低位"
Longint = Integer WPARAM = Integer LPARAM = Integer LRESULT = Integer FARPROC = Pointer function Mak ...
- Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数 关于处理小数点位数的几个oracle函数()1. 取四舍五入的几位小数select round(1.2345, 3) fr ...
- SQLserver中取众位数的写法
取众位数:先按个数倒排序,再取第一条SELECT * FROM ( select a.billid,a.DemandVoltage,count(1) as RecordCount, Row_NUMBE ...
- php 除10取整,取十位数前面一个数字,百位前两个数字
需求:php 除10取整,取十位数前面一个数字,百位前两个数字,并把大于2的加红显示 例:0-9,10-19,20-29,30-39,110-119对应为:0 1 2 3 11 实现主要方法:$num ...
- 预处理、const、static与sizeof-用宏定义得到一个字的高位和低位字节
1:代码如下: #define WORD_LO(XXX) ((byte) (word)(XXX) & 255) #define WORD_HI(XXX) ((byte) (word)(XXX) ...
- 转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select ...
- [转载]转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select ...
- 转 Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select ...
- <hdu - 1600 - 1601> Leftmost Digit && Rightmost Digit 数学方法求取大位数单位数字
1060 - Leftmost Digit 1601 - Rightmost Digit 1060题意很简单,求n的n次方的值的最高位数,我们首先设一个数为a,则可以建立一个等式为n^n = a * ...
随机推荐
- 论docker中 CMD 与 ENTRYPOINT 的区别
Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: CMD指令: The main purpose of a ...
- python 在linux下通过top,和dh命令获得cpu,内存,以及硬盘信息
主要是通过os.popen读取命令输出实现的,os.popen启动新的进程,且将外部命令的输出作为文件类型对象返回.不能获得外部命令的返回值.既然是文件对象就可以直接用for in 来读取,代码如下: ...
- 1006 Do the Untwist
考察编程基础知识,用到字符和数字相互转化等.形式是描述清楚明文和暗文的转化规则. #include <stdio.h> #include <string.h> #define ...
- 不同服务器数据库之间的数据操作 sp_addlinkedserver
--创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrv ...
- Ubuntu14.04LST 安装Oracle SQL Developer 4.0.2
1:Oracle SQL Developer 4.0.2下载链接: http://www.oracle.com/technetwork/developer-tools/sql-developer/do ...
- js加载优化
阻塞特性: JS 有个很无语的阻塞特性,就是当浏览器在执行JS 代码时,不能同时做其他任何事情,无论其代码是内嵌的还是外部的. 脚本位置: 浏览器在碰到一个引入外部JS 文件的 ...
- WPF笔记(2.4 Grid)——Layout
原文:WPF笔记(2.4 Grid)--Layout 第一章已经简单介绍过这个容器,这一节详细介绍.Grid一般是用表格(Grid.Row 和Grid.Column )的,比StackPanel更细致 ...
- C# log Helper
using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...
- samba(转)
配置虚拟机和主机之间的文件共享之所以配置虚拟机和主机之间的文件共享,是因为我们用惯了WINDOWS操作系统下的很多工具,比如编辑工具UltraEdit,souce insight等.我们可以在wind ...
- logstash grok 解析Nginx
log_format main '$remote_addr [$time_local] "$request" ' '$request_body $status $body_byte ...