摘要: //构造一个四位数,前两位和后两位分别相等,但不完全相等,且该数是一个数的平方#include<stdio.h>#include<math.h>int main(){ int i,j,k; int m; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if(i!=j) { m=1000*i+100*i+10*j+j; for(k=31;k*k<m;k++);//用空语句,判断该数是否存在,若存在则k*k==m;或者min=sqrt(1100),max=sqrt(9988) if(k*k==m) printf("Lorr 阅读全文
posted @ 2012-03-29 09:06 加拿大小哥哥 阅读(488) 评论(0) 推荐(0) 编辑
摘要: //打鱼晒网#include<stdio.h>int leap(int year){ int lp; if((year%4==0&&year%100!=0)||year%400==0) lp=1; else lp=0; return lp;}int a[]={31,28,31,30,31,30,31,31,30,31,30,31};int main(){ int year,month,day; int totalday=0; int flag; int i=1;//不要放在scanf语句下面,会报未定义i printf("Input year month 阅读全文
posted @ 2012-03-29 08:40 加拿大小哥哥 阅读(224) 评论(0) 推荐(0) 编辑
摘要: //逆序输出整数void output(int x){ if(n>=1&&n<=9) printf("%d",n); else { printf("%d",n%10); output(n/10); }}if(n<0){ n=-n; putchar('-');}else output(n);//正序输出整数//逆序输出整数void output(int x){ if(n>=1&&n<=9) printf("%d",n); else {output(n/10); 阅读全文
posted @ 2012-03-27 22:14 加拿大小哥哥 阅读(380) 评论(0) 推荐(0) 编辑
摘要: //求一个序列中,第k个数1.排序,输出a[k-1]冒泡for(i=1;i<=n-1;i++)//控制循环次数 for(j=0;j<=n-i-1;j++)//不是n-i+1 if(a[i]>a[i+1]]) 交换,每排一次最大的移到最后定位选择排序for(i=0;i<n-1;i++)//控制循环次数 for(j=i+1;j<n;j++)// if(a[i]>a[j]) 交换2.先取出前k个排序,再取未排序的,若大于a[k-1],则忽略,否则插入适当位置并移去a[k-1];最后输出a[k-1]即可 阅读全文
posted @ 2012-03-27 21:49 加拿大小哥哥 阅读(289) 评论(0) 推荐(0) 编辑
摘要: //杨辉三角(下三角或者等腰三角)#include <stdio.h>int fun(int i,int j){ if(i==j||1==j) return 1; else return fun(i-1,j-1)+fun(i-1,j);} int main(){ int n,i,k,j; printf("Input n:"); scanf("%d",&n); for(i=1;i<=n;i++)//第一行时i=1 { for(k=1;k<=n-i;k++)//第i行有(n—i)个空格,数字右边的空格不用管,因为下一次光标跳到 阅读全文
posted @ 2012-03-27 18:00 加拿大小哥哥 阅读(371) 评论(0) 推荐(0) 编辑
摘要: //九九乘法表(下三角)#include<stdio.h>int main(){int row,col;for(row=1;row<=9;row++){ for(col=1;col<=row;col++)printf("-*%d=-",row,col,col*row);printf("\n");}return 0;}注意:大括号所在位置 阅读全文
posted @ 2012-03-27 17:03 加拿大小哥哥 阅读(1222) 评论(0) 推荐(0) 编辑
摘要: //求三个数的最小公倍数,实际是穷举法#include<stdio.h>int main(){int i=0;int a,b,c;long x;printf("Input a b c:");scanf("%d%d%d",&a,&b,&c);if(a>b)a^=b^=a^=b;if(b>c)b^=c^=b^=c;//此时c>b>ado{i++;x=c*i;}while((x%a!=0)||(x%b!=0));printf("%d\n",x);return 0;}注释:也可求出n 阅读全文
posted @ 2012-03-27 16:51 加拿大小哥哥 阅读(661) 评论(0) 推荐(0) 编辑
摘要: //五本不同的书分给3个人,求不同的分发#include<stdio.h>int main(){int i,j,k,count=0;//int a,b,c;for(i=1;i<=5;i++)for(j=1;j<=5;j++)for(k=1;i!=j&&k<=5;k++)if(i!=k&&j!=k){count++;if(0==count%4)printf("\n");printf("%2d:%d %d %d",count,i,j,k);//输出ijk,不是abc(不定值,没初始化);为了1到9 阅读全文
posted @ 2012-03-27 14:16 加拿大小哥哥 阅读(492) 评论(0) 推荐(0) 编辑
摘要: //n!末尾有几个零#include<stdio.h>int main(){int n,s;int sum=0;printf("Input n:");scanf("%d",&n);while(n>0){n=n/5;sum+=n;}printf("%d\n",sum);return 0;}//阶乘位数ans = (int)log10(n!)+1 ;for(i=2;i<=n;i++) sum += log10(i);return (int)sum + 1;注释:2是足够的关键看有几个5,以100为例,先除以 阅读全文
posted @ 2012-03-27 13:34 加拿大小哥哥 阅读(644) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>using namespace std;int main(){ int x,y; int i=0; char str[2]; cout<<"Input x and y(x**y):"; cin>>x>>str[1]>>str[2]>>y; int last=1; for(;i<y;i++) { last=last*x%1000; } cout<<"The last three digits of "<<x<< 阅读全文
posted @ 2012-03-26 22:05 加拿大小哥哥 阅读(303) 评论(0) 推荐(0) 编辑