`
文章列表
题目: 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。 输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。 补充说明: 1. 操作数为正整数,不需要考虑计算结果溢出的情况。 2. 若输入算式格式错误,输出结果为“0”。 要求实现函数: void arithmetic(const char *pInputStr, long lInputLen, char*pOutputStr); 【输入】pInputStr: 输入字符串 lInputLen: 输入字符串长度 【输出】pOutputStr: 输出字符串, ...

字符串压缩

题目描述: 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz" 要求实现函数: void stringZip(const char *pInputStr ...
题目: 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串 过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】pInputStr: 输入字符串 lInputLen: 输入字符串长度 【输出】pOutputStr: 输出字符串,空间已经开辟好, ...
@ sourceNum:10进制的源数字 @ baseNum:    目的进制 package com.wjy.algorithm; import java.util.Stack; public class SystemTransform { private int sourceNum; private int baseNum; public SystemTransform(int sourceNum,int baseNum){ this.sourceNum=sourceNum; this.baseNum=baseNum; } public vo ...

大整数乘法

          在计算机中,长整型(long int)变量的范围是 -2147483648 至 2147483647,因此若用长整型变量做乘法运算,乘积最多不能超过 10位数。即便用双精度型(double)变量,也仅能保证 16 位有效数字的精度。在某些需要更高精度的乘法运算的场合,需要用别的办法来实现乘法运算。         比较容易想到的是做多位数乘法时列竖式进行计算的方法,只要写出模拟这一过程的程序,就能实现任意大整数的乘法运算。经过查阅资料,找到一种更易于编程的方法,即“列表法”。 下面先介绍“列表法”:       例如当计算8765 x 234时,把乘数与被乘数照如下列出, ...

大整数减法

#include "StdAfx.h" #include "subStr.h" #include<iostream> using namespace std; #define MAX_LENTH 201 void sub(int len,int *bigNumA,int *bigNumB){ //以下为执行逐位相减;tag记录进位 int i,tag=0; for(i=0;i<len;i++){ bigNumA[i]-=bigNumB[i]; if(tag){ bigNumA ...

大整数加法

#include "StdAfx.h" #include "subStr.h" #include<iostream> using namespace std; #define MAX_LENTH 201 void add(int len,int *bigNumA,int *bigNumB){ //以下为执行加法累加,逐位相加;tag记录进位 int i,tag=0; for(i=0;i<len;i++){ bigNumA[i]+=bigNumB[i]; if(tag){ b ...

Java移位操作

    移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。  在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。  三种移位运算符的移动规则和使用如下所示:  <<运算规则:按二 ...
1、与C语言不同,JAVA里没有无符号(unsigned)整型。 JAVA的8种基本类型(boolean,byte,short,char,int,long,float,double)都是有符号的。 2、与C语言不同,JAVA里的char类型,占2个字节,专为存放Unicode字符所设计; 3、与C语言不同,JAVA里的boolean只能赋值为true或false,不能直接赋值0或1; 4、与C语言不同,JAVA里的long类型,不是占4字节,而是占8字节。   JAVA与C的不同之处,还有很多: JAVA中没有指针,其实引用就是指针,但不能进行加减,也没有取值(*)和取地址(& ...
例如: int a[15] = {0}; 第一种,编译器会把第一个初始化值赋给数组的第一个元素,然后用0赋给其余的元素。如果没有给出初始值,编译器不会去做初始化工作。这样简洁的方式让代码更加高效。   还有一种,就是memcpy函数的使用。例如上面的数组,可以 memcpy(a,0,15); 不过个人在嵌入式的环境下使用,个人建议用第一种,因为感觉使用函
      看看如下代码,猜猜会打印出什么? int i=1; printf("%d %d\n",i++,i++);  输出结果竟然是:                    2   1 是不是感到很奇怪? 原因:printf是最右侧的元素先入栈,所以右边的i++中的i先入站占4个字节此时入栈元素为0x00000001,接下来左边的这个i++中的i入栈,此时i已经变成了2(0x00000002)。由于x86是小端存储,所以栈中的情况是这样的:             栈顶  02 00 00 00   01 00 00 00   栈底 输出 ...
C语言的基本数据类型有以下几个:int 整型char 字符型float 单精度浮点型double 双精度浮点型另外,在基本数据类型基础上附加一些限定词, 得到扩充的数据类型。short,long可以应用到整型, unsigned可以应用到整型和字符型:short int(或short) 短整型long int(或long) 长整型unsigned int 无符号整型unsigned short 无符号短整型unsigned long 无符号长整型unsigned char 无符号字符型

strcat的实现原理

char str[10]; char *p=str; char* st="tab"; while(*p++ = *st++){ //这里要是*str++ *st++就不对了。因为str是不能移动的。 } printf("%s\n",str);  

While循环

int a=5,count=0; while(--a) count++; printf("a is%d count is%d\n",a,count);  结果:             a is 0  count is 4 int a=5,count=0; while(a--) count++; printf("a is%d count is%d\n",a,count);  结果:             a is -1  count is 5
问题:给定字符串S,生成该字符串的全排列。 方法1:依次从字符串中取出一个字符作为最终排列的第一个字符,对剩余字符组成的字符串生成全排列,最终结果为取出的字符和剩余子串全排列的组合。
Global site tag (gtag.js) - Google Analytics