c语言
Adamaomaoo
这个作者很懒,什么都没留下…
展开
-
汉诺塔问题
汉诺塔问题是我们在学习程序设计中的一个重要问题,未免应该熟练掌握。下面是汉诺塔问题的算法: function move(x,y) begin write("x--->y") end function hanoi(n,a,b,c) begin if n=1 then原创 2013-12-06 00:44:50 · 756 阅读 · 0 评论 -
经典算法之果园里的树
果园里的树排列成矩阵,他们的x和y坐标。输入若干个三角形,依次统计每一个三角形内部和边界上共有多少棵树。用到的函数:double area2(double x0,double y0,double x1,double y1,double x2,double y2){ return x0*y1+x2*y0+x1*y2-x2*y1-x0*y2-x1*y0;}//即三角形原创 2014-12-05 14:11:09 · 1224 阅读 · 1 评论 -
幂取模(分治策略)
输入正整数,a,n,m,输出a^n mod m的值。a,n,m代码:#include#includeint pow_mod(int a,int n,int m){ int ans=1; int k=a%m; while(n>0) { if(n%2==1) ans=ans*k%m; n=n/2; k=(k*k)%m; } return原创 2014-12-05 23:36:19 · 589 阅读 · 0 评论 -
因子和阶乘
输入正整数n(2表示分别有0,1,2,0,1个2,3,5,7,11.此外应忽略比素因子更大的素数(否则末尾会有无穷多个0)样例输入:553样例输出:5!=3 1 153!=49 23 12 8 4 4 3 2 2 1 1 1 1 1 1 1代码:#include#include//素数判定int is_prime(int n) { fo原创 2014-12-05 10:49:00 · 539 阅读 · 0 评论 -
大整数取模
输入正整数n和m,输出n mod m的值。n分析:先把大整数写成“自左向右”的形式:1234=((1*10+2)*10+3)*10+4,然后用前面的公式,每步取模。代码如下:#include#include#includechar s[110];int main(){ int n,m; scanf("%d%d",&n,&m); sprintf(s,"%d",n);原创 2014-12-05 22:48:26 · 750 阅读 · 0 评论 -
printf()和scanf()的*修饰符
printf()和scanf()都可以用*修饰符来修饰说明符的意义,但是他们的方式不同。1,在printf()中*可以代替指定的字段宽度,并且由程序来指定该值。#includeint main(){unsigned width,precision;int number = 256;double weight = 242.5;printf("What field原创 2015-03-18 22:42:18 · 991 阅读 · 0 评论 -
不匹配的转换
近期通过对c的复习回顾,忽然感到以前学习到的c的知识真是少之又少,比如对于不匹配的转换进行输出时我以前只是知道会输出错误数据,但是对于错误数据的由来却是没有深究。这次通过对c的进一步的复习使我对c有个更深刻的认识。一,不匹配的转换 /*一些不匹配的整数转换*/#include#define PAGES 336#define WORDS 65618int main(void){原创 2015-03-18 22:21:03 · 594 阅读 · 0 评论 -
高斯日记
题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4原创 2015-04-07 20:10:43 · 467 阅读 · 0 评论 -
NYoj A*B Problem
A*B Problem时间限制:1000 ms | 内存限制:65535 KB难度:2描述设计一个程序求出A*B,然后将其结果每一位相加得到C,如果C的位数大于等于2,继续将C的各位数相加,直到结果是个一位数k。例如:6*8=48;4+8=12;1+2=3;输出3即可。输入第一行输入一个数N(0随后原创 2014-05-23 23:26:44 · 606 阅读 · 0 评论 -
大数的阶乘
大数阶乘时间限制:3000 ms | 内存限制:65535 KB难度:3描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0输出输出m的阶乘,并在输出结束之后输入一个换行符样例输入50样例输出304140932017133780436126081660647688443原创 2014-05-23 22:41:26 · 524 阅读 · 0 评论 -
异形卵
#include#includeint main(){ int i,j; int a[1005]; int K,L,N,t,sum,max; scanf("%d",&K); while(K--) { scanf("%d%d",&L,&N); for(i=1;i sc原创 2014-05-15 23:13:20 · 518 阅读 · 0 评论 -
nyoj322 sort it(冒泡)
excepation:You want to processe a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. Then how many times it need.For exampl原创 2014-08-09 21:25:12 · 613 阅读 · 0 评论 -
字母重排
输入一个字典(用******结尾),然后再输入若干行单词。每输入一个单词w,你都需要在 字典中找出所有可以用W的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:( )。输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个的小写字母组成。注意,字典中的顺序不一定按照字典序排序。样例输入:tarp given score refund only tr原创 2014-12-05 00:16:08 · 712 阅读 · 0 评论 -
6174问题
输入一个n位数,输出操作序列,直到出现循环(即得到的数曾经得到过),输入保证在循环之前最多只会产生1000个整数。样例输入:1234样例输出:1234->3087->8352->6174->6174代码如下:#include#includeusing namespace std;int get_next(int x){ int max,min=0,len; ch原创 2014-12-04 23:25:28 · 498 阅读 · 0 评论 -
算法设计与分析 1-1 统计数字问题(C语言版)
问题描述: 一本书的页码从自然数1开始顺序编码直到自然数n。书的页码 按照通常的习惯编排,一个页码内都不包含多余的前导数字0.例如,第6页用数字6表示,而不是06或006等;数字计数问题要求给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,……9.编辑任务: 给定表示书的总页码的十进制数n。变成计算书的全部页码 中分别用到多少次0,1,……9.数据输入: 输入数原创 2014-03-08 01:42:28 · 7279 阅读 · 0 评论 -
CF 349B - Color the Fence
对于本题它的大概意思就是:原创 2014-05-13 17:22:58 · 692 阅读 · 0 评论 -
HDOJ 3790最短路径问题
#include const int MAX=99999;int d[100005][100005],p[100005][100005]; //两点之间的距离和花费int lowcost[100005],lowline[100005] ;int n,m,min,i,j,L,T;void prim(int s,int t){ int min1,min2,k;原创 2014-05-13 17:53:46 · 551 阅读 · 0 评论 -
CF 348A Mafia
A. Mafiatime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputOne day n friends gathered together to play "Mafia". During原创 2014-05-13 17:01:04 · 1151 阅读 · 0 评论 -
BNU Ultra-QuickSort
G. Ultra-QuickSortTime Limit: 7000msCase Time Limit: 7000msMemory Limit: 65536KB64-bit integer IO format: %lld Java class name: Main Font Size: In this problem, you have to原创 2014-05-20 17:11:57 · 459 阅读 · 0 评论 -
NY25 A Famous Music Composer
搞了半天才明白,原来这个原创 2014-06-01 17:20:23 · 979 阅读 · 0 评论 -
hduoj 1062
#include #includeint main(){ int n,i,j,k,t,len; char a[1005],b[1005]; scanf("%d",&n); getchar(); while(n--) { gets(a); len=strlen(a); for(i=0,j=0,t=0;i<len;i++) { if(a[i]!=' ')原创 2014-08-07 15:10:03 · 592 阅读 · 0 评论 -
hduoj 1020Encoding
#include#includeint main(){ int n,i,count,len; char a[100005]={0}; char temp; while(scanf("%d",&n),n--) { scanf("%s",a); len=strlen(a); count=1; temp=a[0]; for(i=1;i<len;i++原创 2014-08-07 15:06:37 · 445 阅读 · 0 评论 -
hdu1164 Eddy's research I
#include #include#include#includebool prim(int m){if(m==1)return false;int n=sqrt((double)m);for(int i=2;i{if(m%i==0){return false;}}return true;}void ha(int m){原创 2014-08-09 21:30:40 · 528 阅读 · 0 评论 -
nyoj 56阶乘因式分解(一)
阶乘因式分解(一)时间限制:3000 ms | 内存限制:65535 KB难度:2描述给定两个数m,n,其中m是一个素数。将n(0输入第一行是一个整数s(0随后的s行, 每行有两个整数n,m。输出输出m的个数。样例输入2100 516 2样例输出2415原创 2014-08-15 22:05:34 · 535 阅读 · 0 评论 -
大数的fibonacci数取余问题
问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余原创 2014-11-24 21:56:44 · 787 阅读 · 0 评论 -
C字符串处理相关函数
1、strstr(*str,*substr) 判断substr是否是str的子串,如果是则返回substr第一次出现的位置,否则返回NULL。2、strcat(*str1,*str2):字符串连接函数:把src2所指字符串添加到str1结尾处(覆盖str1结尾处的’\0’)。src2和str1所指内存区域不可以重叠且str1必须有足够的空间来容纳src2的字符串。 3、字符串替换函数:int Re原创 2017-04-24 15:09:39 · 539 阅读 · 0 评论