
C语言
sunny_girl_lili
性格开朗
展开
-
选择排序
//选择排序#include int main(){ int a[10],i,j,t; for(i=0;i scanf("%d",&a[i]); for(i=0;i for(j=i+1;j if(a[i]>a[j]) { t=a[i];原创 2015-06-02 20:34:39 · 277 阅读 · 0 评论 -
大数阶乘
/*【分析】为了保存结果,先分析1000!大约等于4×102567,因此可以用一个3000个元素的数组f保存。让f[0]保存结果的个位,f[1]是十位,f[2]是百位,…,则每次只需要模似手算即可完成n!。在输出时需要忽略前导0。注意,如果结果本身就是0,那么忽略所有前导0后将什么都不输出。所幸n!肯定不等于0,因本题可以忽略这个细节。*/#include #inclu原创 2015-07-10 20:46:14 · 351 阅读 · 0 评论 -
nyoj 56 阶乘因式分解
描述给定两个数m,n,其中m是一个素数。将n(0输入第一行是一个整数s(0随后的s行, 每行有两个整数n,m。输出输出m的个数。/*给定两个数m,n求m!分解质因数后因子n的个数。这道题涉及到了大数问题,如果相乘直接求的话会超出数据类型的范围。下面给出一种效率比较高的算法,我们一步一步来。m!=1*2*3*……*(翻译 2015-07-10 21:05:51 · 407 阅读 · 0 评论 -
蛇形填数(螺旋填数类似)
#include int main(){int n;scanf("%d",&n);int i,j,m=1;int a[101][101];for(i=0;i{for(j=i;j a[j][n-i-1]=m++;for(j=n-i-1;j>i;j--) a[n-i-1][j]=m++;for(j=n-i-1;j>i;j--) a[j][i]=m原创 2015-07-10 19:17:40 · 492 阅读 · 0 评论 -
括号配对问题
法一:数组解决问题#include#include int main(){int k;int i;scanf("%d",&k);getchar();while(k--){char a[10000],b[10000];int t=-1;gets(a);int len=strlen(a);for(i=0;a[i]!='\0';i++){原创 2015-07-14 17:24:58 · 302 阅读 · 0 评论 -
数的长度
描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?输入首行输入n,表示有多少组测试数据(n随后n行每行输入一组测试数据 N( 0 输出对于每个数N,输出N!的(十进制)位数。样例输入31332000样例输出11130271原创 2015-07-10 19:44:28 · 326 阅读 · 0 评论 -
分数拆分
#include #include int main(){int n;scanf("%d",&n);while(n--){double k;scanf("%lf",&k);for(double y=1;y{double x=((-1)*k*y)/(k-y);double p=(int)x;if(x-p==0&&x>0)printf("1/原创 2015-07-10 19:34:20 · 388 阅读 · 0 评论 -
公约数公倍数
#include int main(){int k;scanf("%d",&k);while(k--){int a,b,temp,bemp;scanf("%d%d",&a,&b);int aa,bb;aa=a;bb=b;if(a{temp=a;a=b;b=temp;}while(a%b!=0){temp=a%b;a原创 2015-07-10 19:23:04 · 321 阅读 · 0 评论 -
素数距离问题
#include #include int main(){ int k; scanf("%d",&k); while(k--) { int n,i,j; int fun(int n); scanf("%d",&n); for(i=n,j=n;;i--,j++) { if(fun(i)) { printf("%d %d\n",i,n-i);原创 2015-07-10 19:20:32 · 292 阅读 · 0 评论 -
日期计算
#include int main(){ int k; scanf("%d",&k); int n,y,r,flag=0; int a[2][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; while(k--) { int days=0;原创 2015-07-10 19:27:53 · 423 阅读 · 0 评论 -
矩形的个数
//本题主要利用公式求解// long long 可能在VC6.0上的运行不顺畅#include int main(){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) { printf("%lld\n",(long long)(1+a)*a/2*(1+b)*b/2); } return 0;}原创 2015-07-10 19:26:19 · 346 阅读 · 0 评论 -
删除字符串中的特定字符
我这有两种方法:第一种:#include #include int main(){ int i,n; char s[100],c; scanf("%s %c",&s,&c); int len=strlen(s); for(i=0;i if(s[i]==c) { for原创 2015-06-08 20:54:58 · 557 阅读 · 0 评论 -
冒泡排序
//冒泡排序#include int main(){ int a[10],i,j; int t; for(i=0;i scanf("%d",&a[i]); for(i=1;i for(j=0;j if(a[j]>a[j+1]) { t=a[j];原创 2015-06-03 07:34:10 · 283 阅读 · 0 评论 -
二分法查找
//二分法查找#include int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; //有序数组 int low,high,mid,n=10,x; printf("Enter x:"); //提示输入x scanf("%d",&x); low=0原创 2015-06-02 20:11:30 · 363 阅读 · 0 评论 -
KMP算法(部分重要代码)
重要代码呈现,剩下的还需自行理解编写运行 @—@ 欢迎讨论~typedef char *String;//i表后缀,j表前缀 ,前缀是固定的,后缀是相对的 //获得 next数组的内容,T 是模式匹配版 void get_next( String T,int *next){ j=0; i=1; next[i]=0; while(i<t[0]) //t[原创 2015-07-24 11:03:49 · 348 阅读 · 0 评论