一个给定的数值由左边开始升位到右边第N 位
2011-08-23 19:46
309 查看
一个给定的数值由左边开始升位到右边第N 位,如
0010<<1 == 0100
或者
0001 0011<<4 == 0011 0000
请用C 或者C++或者其他X86 上能运行的程序实现。
0010<<1 == 0100
或者
0001 0011<<4 == 0011 0000
请用C 或者C++或者其他X86 上能运行的程序实现。
#include <iostream> using namespace std; void Convert(char* input,int num) { int i,r,j=0; for (i=0;input[i+num]!='\0';i++) { if (isspace(input[i+num])){ //过滤掉空格 input[i]='@'; //把input[i+num]本要赋值的input[i]赋值为'@' continue; } input[i]=input[i+num];//把下标为i+num处的值赋到下标为i处 } for (r=0;r<num;r++) //把右边空缺位补零 input[i+r]='0'; input[i+num]='\0'; j=0; for (i=0;input[i]!='\0';i++) { int flag=0; if(input[i]=='@'){ //遇到'@' 将flag标志为1,同时j自减1 flag=1; --j; } if(flag!=1) //值不为'@'则输出 cout<<input[i];//输出字符 if (++j%4==0){ //每输出4个字符,输出一个空格 cout<<" "; } } } void main(){ char a[20]; int number; cout<<"input string:\n"; cin.getline(a,20); cout<<"input number:\n"; cin>>number; Convert(a,number); system("pause"); }
相关文章推荐
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- 4.给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。 要求:空间复杂度O(1),时间复杂度为O(n)
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
- 百度笔试:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。 要求:空间复杂度O(1),时间复杂度为O(n)
- 编程: 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
- 题目:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- 据说是淘宝面试题“给定一个数组将大于0的放在最右边,等于0的放在中间,大于0的放在最左边”
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。 要求:空间复杂度O(1),时间复杂度为O(n)。
- 给定一个无序数组,请调整该数组,调整成奇数放在数组的左边,偶数放在数组的右边。但是奇数与奇数之间的相对顺序不变,偶数和偶数之间的相对顺序也不变。
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度O(1),时间复杂度为O(n)
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- 对于一个字符串,设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。给定字符串A和它的长度n以及特点位置p,请返回旋转后的结果。
- 给定一个整数数组,通过变换使得数组的左边为奇右边为偶数!
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数---百度笔试题
- 这是一个我面试某公司的算法题目:对一个字符数组进行排序,根据给定的字符,大于它的,放在数组的左边,小于它的,放在数组的右边,且数组中的元素之间的相对位置要保持不变。
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- 给定一个整数数组,重新排列数组使其左边奇数,右边偶数