记: 进制转换 AC代码: #include <stdio.h> #define K 2 int main(void) { ; scanf("%d",&n); ) { && n%K == ) { break; } n = n/K; ans ++; } printf("%d",ans); ; }…
 算法训练 8-2求完数   时间限制:50.0s   内存限制:256.0MB 问题描述 如果一个自然数的所有小于自身的因子之和等于该数,则称为完数.设计算法,打印1-9999之间的所有完数. 样例输出 与上面的样例输入对应的输出.例: 数据规模和约定 1-9999   题目解析: 在求一个自然数的因子时,只需要从 1 循环到该自然数一半加一取余即可,这样可以将循环次数缩短 1 / 2 ,提高运行速度.   示例代码: public class Main { public static voi…
问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,,,,5这5个参数分别指代不同的5种字符串操作,你需要根据传入的参数,按照徐老师的规定,对输入字符串进行格式转化. 徐老师指定的操作如下: 表示全部转化为大写字母输出,如abC 变成 ABC 表示全部转换为小写字母输出,如abC变成abc 表示将字符串整个逆序输出,如 abc 变成 cba 表示将字符串中对应的大写字母转换为小写字母,而将其中的小…
记: 本题目考的是最小生成数,可使用Kruskal算法 第一次,20分 原因:使用动态数组,有概率报运行错误(大雾= =) 第二次,100分 原因:改用静态数组,一次过 示例代码: #include <stdio.h> #include <stdlib.h> #define INF 99999999 typedef struct node node_t; typedef struct node { int S; int E; int L; }node; node e[]; int…
记: 一开始没接触过关于最短距离的算法,便开始翻阅关于图的知识, 得知关于最短距离的算法有Dijkstra算法(堆优化暂未看懂),Bellman-Ford算法,Floyd算法,SPFA算法. 由于数据输入中存在负边,故可使用的有Dijkstra算法堆优化以及SPFA队列优化, 于是在网上找模版,却报出了运行错误. 也没看出问题,故翻阅他人笔记 其中一篇关于SPFA详解的blog: http://blog.csdn.net/muxidreamtohit/article/details/789429…
这个题实际上思路是比较简单的,但是需要注意细节问题. 思路:读入数组之后进行排序,然后再求交.并.补集. 首先排序:(使用的是冒泡排序) #include<iostream> using namespace std; ]; ]; ]; ; ; ; void swap(int *a,int *b) { int temp = *a; *a = *b; *b = temp; } void sort(int a[],int n) { ; i < n; i++) { ; j < n-i; j…
这个题目就是求质数的乘积,在加一个模,思路比较简单,直接上代码: #include<iostream> using namespace std; bool isPrime(int a) { ; ; i < a; i++) { ) { flag = ; return false; } } ) { // cout<<a<<" "; return true; } } int main() { long n; ;//当前的数字 ;//记录有多少个质数…
问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数. 接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个.序列元素从1开始标号. 输出格式 总共输出m行,每行一个数,表示询问的答案. 样例输入 5 1 2 3 4 5 2 1 5 2 2 3 2 样例输出 4 2 数据规模与约定 对于30%的数据,n…
问题描述 输入A,B. 输出A+B. 输入格式 输入包含两个整数A,B,用一个空格分隔. 输出格式 输出一个整数,表示A+B的值. 样例输入 样例输出 数据规模和约定 -,,,<=A,B<=,,,. AC代码: #include <stdio.h> int main(void) { int a,b; scanf("%d %d",&a,&b); printf("%d",a+b); ; }…
问题描述 输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素. 输入格式 10个整数. 输出格式 多行输出,每行一个元素. 样例输入 样例输出 解题思路: 若输入的数字存在数组中,剔除,否则存储 按从小到大的顺序排序,并输出 AC代码: #include <stdio.h> #define MAX 10 int main(void) { , j = , k = ; ]; ; k < MAX ; k ++) { scanf("%d",&arr[i++…