![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 249 阅读 · 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 · 319 阅读 · 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 · 385 阅读 · 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 · 439 阅读 · 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 · 269 阅读 · 0 评论 -
数的长度
描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)? 输入首行输入n,表示有多少组测试数据(n 随后n行每行输入一组测试数据 N( 0 输出对于每个数N,输出N!的(十进制)位数。 样例输入 3 1 3 32000 样例输出 1 1 130271原创 2015-07-10 19:44:28 · 300 阅读 · 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 · 352 阅读 · 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 · 290 阅读 · 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 · 274 阅读 · 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 · 394 阅读 · 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 · 317 阅读 · 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 · 427 阅读 · 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 · 247 阅读 · 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 · 336 阅读 · 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 · 323 阅读 · 0 评论