算法系列
抬头式微笑唔
积少成多
展开
-
大整数之加法(无符号)
一、高精度加法/*大整数的高精度加法*/#include<stdio.h>#include<string.h>#define MAX 1000void change(char *str, int *sub) { int len = strlen(str); int k = 0; for (int i = len - 1; i >= 0; i--) {...原创 2019-05-31 15:24:00 · 1056 阅读 · 0 评论 -
大整数比较(带符号)
思路:大整数的比较需要通过数字字符串来比较假设字符数组a[100], b[100]来存储输入的数值一、a、b异号1、a正,b负,函数返回值为1, a必大于b2、a负,b正,函数返回值为-1,a必小于b二、a、b同号1、a正,b正字符串a、b长度不相等len1表示字符串a的长度,len2表示字符串b的长度若len1 > len2, 函数返回值为1, a必大于b若len1 ...原创 2019-06-01 11:57:38 · 1020 阅读 · 0 评论 -
字符串插入
具体操作间代码中注释部分!!!#include<stdio.h>#include<string.h>#define MAX 100/*在字符串str的第pos个位置之前插入另一个字符串Tpos从1开始,且 1<= pos <= strlen(str) + 1例如:str = "hello", T = "world";当 pos=1; 在字符串头前...原创 2019-06-11 15:30:26 · 8480 阅读 · 0 评论 -
字串位置
题目要求:在主字符串S中找到指定的子字符串T,且输出第一次出现T的位置(即T的首字母下标),假设主子符串S为 “hjhelpkl”, T子字符串为 “help”, 那么T的位置是2;思路:在主串S中从左往右遍历与字串T长度相等的字符,第一次遍历的是hjhe, 第二次遍历的是jhel…,当两者相等时,输出位置#include<stdio.h>#include<string...原创 2019-06-11 16:27:52 · 239 阅读 · 0 评论 -
删除指定长度字符串
#include<stdio.h>#include<string.h>#define MAX 100/*串str存在,pos是字符的位置,从1开始;1 <= pos <= strlen(str) - len + 1len是将要删除的子串长度strdelete函数作用: 从串str中删除第pos个字符起长度为len的字串*/void strde...原创 2019-06-12 09:24:10 · 1534 阅读 · 0 评论 -
分数四则运算
预备知识:1、分数化简第一种情况:如假分数17/2,最终需要化简成8 1/2;即a b/c的形式其中a = 分子/分母; b = 分子%分母;c是分母第二种情况:6/9,需要化简成2/3;即将分子分母同时除以最大公约数求最大公约数算法如下:/*a 和 b的最大公约数*/int gcd(int a, int b){ if(b == 0) return a; else retur...原创 2019-06-12 10:58:52 · 1158 阅读 · 0 评论 -
删除重复字符
输入:good121输出:gd2int main(void) { char a[MAX]; char hash[128] = { 0 }; int i = 0; /*scanf("%s", a); for (int i = 0; i < strlen(a); i++) { hash[a[i]]++; }*/ gets(a); for (int i = 0; i <...原创 2019-06-26 21:22:30 · 332 阅读 · 0 评论 -
字符串去重(重点)
要求:将给定字符串去掉重复的字符,如hello->helo方法一:适合于输入字符有限定(例如只允许输入英文、数字等)思路:1、遍历找出相同字符,替换字符以数组a为例,将元素a[i] 与a[i] 后面的元素a[k]依次比较,如果后面的元素a[k]有与a[i]相同的,将a[k] 替换成另一个字符( 区同于题目中允许输入的字符如‘#’)2、重新保存 不重复的字符遍历数组a,如果a[i]...原创 2019-05-28 19:50:24 · 7185 阅读 · 0 评论