算法小技巧
多语言都有零散的小技巧知识哦
影龙武
加油呀ヾ(◍°∇°◍)ノ゙
展开
-
C语言获取从高到低排好序的考试分数,二分查找法查找学生排名
C语言获取从高到低排好序的考试分数,二分查找法查找学生排名代码//获取从高到低排好序的考试分数,二分查找法查找学生排名#include<stdio.h>#define N 100 //数组大小为10,可根据需要自行修改//二分查查找函数(数组,左起点下标,右结束下标,目标值)int binary_search(int num[],int left,int right,int key){ int mid;//中间下标 while(left<=right) //不加等原创 2021-12-18 10:48:28 · 1289 阅读 · 0 评论 -
C语言获取从高到低排好序的考试分数,顺序查找法查找学生排名
C语言获取从高到低排好序的考试分数,顺序查找法查找学生排名代码//获取从高到低排好序的考试分数,顺序查找法查找学生排名#include<stdio.h>#define N 100 //数组大小为10,可根据需要自行修改int main(){ int n,i; //成绩个数,循环变量 int scores[N]; //分数数组 int score; //目标分数 int rank=0; //排名 printf("请输入成绩的个数:\n"); scanf("%d原创 2021-12-18 10:48:09 · 1476 阅读 · 0 评论 -
C语言给定年份和月份,求该月共有多少天
C语言给定年份和月份,求该月共有多少天代码//给定年份和月份,求该月共有多少天 #include<stdio.h>//判断闰年函数int isLeapYear(int year){ //闰年能被4整除不能被100整除,或者能被400整除 if( (year%4==0&&year%100!=0) || year%400==0) { return 1; } return false;}//根据年份和月份天返回该月天数函数int days_o原创 2021-12-18 10:47:50 · 2921 阅读 · 1 评论 -
C语言将满分为100的整数型考试分数,转化为ABCDE五个等级
C语言将满分为100的整数型考试分数,转化为ABCDE五个等级将满分为100的整数型考试分数,转化为ABCDE五个等级90-100 A80-89 B70-79 C60-69 D0-59 E代码//将满分为100的整数型考试分数,转化为ABCDE五个等级//90-100 A//80-89 B//70-79 C//60-69 D//0-59 E #include<stdio.h>int main(){ int score; c原创 2021-12-18 10:47:16 · 3036 阅读 · 0 评论 -
C语言统计十进制正整数n转换为二进制后,包含的0和1的个数
C语言统计十进制正整数n转换为二进制后,包含的0和1的个数代码//统计十进制正整数n转换为二进制后,包含的0和1的个数 #include<stdio.h>int main(){ int s0=0,s1=0; //s0为0的个数,s1为1的个数 int n; printf("请输入一个十进制正整数:\n"); scanf("%d",&n); //循环除二计算余数为0和1的个数 do { if(n%2==1) { s1++; } els原创 2021-12-18 10:46:26 · 2906 阅读 · 0 评论 -
C语言输入某年某月某日,判断这一天是这一年的第几天(含判断闰年)
C语言输入某年某月某日,判断这一天是这一年的第几天(含判断闰年)代码//输入某年某月某日,判断这一天是这一年的第几天? #include<stdio.h>//判断闰年函数int isLeapYear(int year){ //闰年,能被4整除但不能被100整除,或能被400整除 if((year%4==0 && year%100!=0) || year%400==0) { return 1; } return 0;}//计算某年某月某日是原创 2021-12-14 08:38:29 · 4417 阅读 · 0 评论 -
C语言阶乘求和(计算1的阶乘+2的阶乘+3的阶乘+...+n的阶乘)
C语言阶乘求和(计算1!+2!+3!+…+n!)代码//计算1!+2!+3!+...+n!#include<stdio.h>int main(){ int n,i,j; int sum=0; //阶乘求和 int factorial=1; //阶乘 printf("请输入要求到几的阶乘的和:\n"); scanf("%d",&n); for(i=1;i<=n;i++) { factorial=1; //阶乘初始化为1 for(j=1;j&l原创 2021-12-14 08:34:20 · 11158 阅读 · 0 评论 -
C语言求多个整数各位的平方和并将结果排序(函数版)
C语言求多个整数各位的平方和并将结果排序(函数版)代码代码中选择排序部分详细注释见C语言选择排序(函数版)#include<stdio.h>//数组最大容量 #define N 30//选择排序函数 void select_sort(int num[],int n){ int i,j,k,t; for(i=0;i<n-1;i++) { k=i; //初始化最值下标 for(j=i+1;j<n;j++) { if(num[j]<num[原创 2021-12-13 21:55:15 · 2509 阅读 · 0 评论 -
C语言冒泡排序(函数版)
C语言冒泡排序(函数版)代码//排序 #include<stdio.h>//数组大小为10,可根据需要自行修改 #define N 10//冒泡排序函数void bubble_sort(int num[],int n) //存放要排序数的数组,要排序数的个数 { int i,j,t; //i,j为遍历变量,t为临时交换变量 for(i=0;i<n-1;i++) //控制内层循环次数 { //控制每次循环最小的比较次数 for(j=0;j<n-1-i原创 2021-12-13 21:52:06 · 11467 阅读 · 5 评论 -
C语言选择排序(函数版)
C语言选择排序(函数版)代码//排序 #include<stdio.h>//数组大小为10,可根据需要自行修改 #define N 10//选择排序函数 void select_sort(int num[],int n) //存放要排序数的数组,要排序数的个数 { int i,j,k,t; //i,j为遍历变量,k为最小或最大的数的下标,t为临时交换变量 for(i=0;i<n-1;i++) //外圈从第一个位置遍历到倒数第二个位置 { k=i; //先记原创 2021-12-13 21:51:40 · 7250 阅读 · 0 评论 -
C语言判断素数(质数)
C语言判断素数(质数)代码//判断素数 #include<stdio.h> int main(){ int n,i; scanf("%d",&n); if(n<2) //素数为大于1的数,1既不是素数也不是合数 { printf("%d不是素数\n",n); } else { for(i=2;i<=n/2;i++) //2不满足for循环条件,进不去循环(2为素数) { if(n%i==0) //能被除了1和自己之外的其他数整除原创 2021-12-13 21:49:33 · 632 阅读 · 0 评论 -
C++判断用户输入是否为正整数、整数
C++判断用户输入是否为正整数、整数判断用户输入是否为正整数不能输入小数不能输入字母、单词不能输入文字不能输入负数代码:在这里插入代码片原创 2020-11-13 09:42:01 · 9194 阅读 · 6 评论 -
java求数组内元素的和等于给定值的情况,数组元素可以重复使用
java求数组内元素的和等于给定值的情况,数组元素可以重复使用写一个题目突然有这个需求,用深搜成功解决哈哈哈。题目需求给定N个无重复的正整数,和目标数M,找出N中所有和为M的组合,N中的数可以重复使用样例输入1:2 82 3样例输出1:[[2, 3, 3], [2, 2, 2, 2]]解释1:2+3+3=82+2+2+2=8样例输入2:4 72 3 6 7样例输出2:[[2, 2, 3], [7]]解释2:2+2+3=77=7代码package 求数组元素原创 2020-11-10 21:03:00 · 1250 阅读 · 0 评论 -
java利用Set对List进行去重
java利用Set对List进行去重原理HashSet中没有重复元素方法一直接在new HashSet的时候把要去重的List放进去Set<Integer> set = new HashSet<Integer>(list);代码示例package 利用Set对List进行去重;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.ut原创 2020-11-09 18:39:16 · 1185 阅读 · 0 评论 -
java求集合的子集dfs版
java求集合的子集dfs版代码package 求集合的子集;import java.util.ArrayList;import java.util.List;import java.util.Scanner;//求集合的子集public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.ou原创 2020-11-09 17:38:18 · 429 阅读 · 0 评论 -
java格式化输入输出整理(不定时更新)
java格式化输入输出整理原创 2020-10-26 21:47:26 · 793 阅读 · 0 评论 -
Java递归求全排列详解
Java递归求全排列详解推荐博客:博客园Java全排列递归算法,结尾的解释很形象了csdn的大佬写的,和我下面的代码思路基本一致全排列的递归解释:全排列的数学定义就不再过多解释,考虑递归算法的实现可从下面几点入手(以数组为例,如对其他元素排列,将元素编号放入数组即可):1、一个数的全排列,如排列{1},就是这个数本身这一种情况2、两个数的全排列,如排列{1,2}:第一步:将{1}放在第零个位置,剩下的{2}进行一个数的全排列,结果为{1,2}第二步:将{2}放在第零个位置,剩下的{1}原创 2020-10-06 21:19:55 · 1597 阅读 · 0 评论 -
Java求字符串的所有连续子串
Java求字符串的所有连续子串例如 abcd 的连续子串像a、ab、abc、abcd、b、bc、bcd等,不考虑ac、ad、bd这样不连续的包含自身,直接输出 public static void getAllSubstrings(String s){ for (int i = 0; i < s.length() ; i++) { for (int j = i+1; j < s.length()+1 ; j++) { //使用<可以快一原创 2020-05-20 10:03:52 · 2434 阅读 · 0 评论 -
Java char数组的神奇打印(数组名直接输出内容!)
char数组的神奇打印一维char数组的输出 char[] cArr = new char[]{'a','b','c'}; System.out.println(cArr);//char类型数组的输出比较神奇,可以直接用数组名打印输出结果二维char数组的输出 char[][] map = new char[][]{ {'#','#','#','#','#','#'}...原创 2020-03-27 13:30:51 · 2956 阅读 · 0 评论 -
Java 二进制转十进制
Java 二进制转十进制方法一、使用Integer.parseInt("",2)Integer.parseInt("",2)第一个参数是字符串,第二个参数是把前面的字符串解析为什么进制的数,这里的意思就是把前面的字符串解析为2进制的数,返回一个十进制的数。 Scanner scanner = new Scanner(System.in); String n = scanner.nex...原创 2020-03-23 23:30:02 · 1156 阅读 · 0 评论 -
Java 十进制转二进制
Java 十进制转二进制方法一、使用Integer自带方法toBinaryStringint n = 5;String result = Integer.toBinaryString(n);方法二、自定义函数 /** * @author yinglongwu */ //十进制转二进制,除以2,倒取余 public static String tenToTwo(int x) ...原创 2020-03-23 23:02:19 · 349 阅读 · 1 评论 -
Java 四舍五入保留两位小数(替换过时的bd.setScale(2, BigDecimal.ROUND_HALF_UP)方法)
四舍五入保留两位小数使用BigDecimal类里的setScale方法进行四舍五入过时替换 BigDecimal bd = new BigDecimal(1.234); //这个方法中划线,已经过时了 double result1 = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //可以用下面的代替 d...原创 2020-03-23 19:45:45 · 9604 阅读 · 2 评论 -
Java字符串反转、判断回文数、回文串
字符串反转、判断回文数什么是回文数设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。说白了就是一个数正过来和反过来是一样的。如1221和1221。1223和3221则不是回文数。代码 /** * @author yinglongwu */ //判断是否为...原创 2020-03-23 18:01:12 · 568 阅读 · 0 评论 -
Java 判断质数
判断质数什么是质数质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。所以1不是质数代码示例 public static boolean isPrime (int x) { if (x==1) { //1不是质数 return false; }else if (x==2) { return true; } else { for (in...原创 2020-03-23 17:51:12 · 320 阅读 · 0 评论 -
Java分解质因数
Java分解质因数最小的质数为2while循环实现 public static void primeFactor(int n) { int k = 2;//先用最小的2开始分解 while (k <= n) { if (k == n) { System.out.print(k); break;...原创 2020-03-20 13:03:48 · 466 阅读 · 0 评论 -
Java求最大公约数(含自带gcd()方法)
Java求最大公约数利用BigInteger里的a.gcd(b)方法求a和b的最大公约数 Scanner scanner = new Scanner(System.in); BigInteger x = scanner.nextBigInteger();//可以接收int类型 BigInteger y = scanner.nextBigInteger();//也可以利用BigIntege...原创 2020-03-19 19:41:17 · 11631 阅读 · 0 评论 -
Java中char和int相互转换
char转int的方法方法一(直接转)使用Character.getNumericValue(char)方法 public static void main(String[] args) { char ch = '8'; //char ch = 8;//表示的是码表中十进制数8对应的字符空心方块 //char ch = 56;//System.out.println(ch);...原创 2020-03-11 16:33:51 · 15133 阅读 · 1 评论 -
Java中String和int相互转换及速度比较
int转String的方法方法一,直接在int后面加一个空的字符串,因为在java里面,默认任务int类型和字符串类型相加,为字符串类型。速度较慢int i=1;String s=i+"";方法二,使用String的valueOf方法速度中间int i=2;String s=String.valueOf(i);注意:这里valueOf()的括号里还可以填ch...原创 2020-03-11 16:27:23 · 2948 阅读 · 0 评论 -
Java中String和char相互转换
String转为char的方法方法一(String数组转为char数组)使用String里的toCharArray()方法(返回值为char[])可以得到将包含整个String的char数组。这样我们就能够使用数组下标来访问string中的任意位置的元素。 public static void main(String[] args) { String s = "abcd"; ch...原创 2020-03-11 16:13:38 · 1588 阅读 · 0 评论 -
Java算法技巧整理(还有一些遇到的坑)
Java算法技巧整理输入单个字符//java里没有nextchar(),这里的意思是字符串里的第一个元素char ch = scanner.next().charAt(0);四舍五入保留小数//四舍五入保留两位小数String result = String.format("%.2f", a);仿照C语言%.f的方式控制输出的小数位数System.out.printf("%....原创 2020-03-10 17:03:16 · 396 阅读 · 0 评论 -
C++string类型和int型相互转换
C++string类型和int型相互转换在这里插入代码片原创 2019-03-23 20:53:30 · 1967 阅读 · 1 评论 -
C++全排列函数
C++全排列函数头文件#include<algorithm>具体内容函数原型:bool next_permutation(iterator start, iterator end);返回值:布尔型函数本体:next_permutation(开始,结束),输出所有比当前排列大的排列,顺序是从小到大。prev_permutation(开始,结束),输出所有比当前排列小的...原创 2019-03-25 22:06:47 · 4284 阅读 · 1 评论