摘要: 题目大意:给出一个数n,求n^n的数根,数根即各位数字之和,如果这个和不是一位数,继续求这个数的各位数字之和,直到为一位数为止。因为ab*ab=(10*a+b)*(10*a+b)=100*a*a+10*2*a*b+b*b=a*a+2*a*b+b*b=(a+b)*(a+b)abc*abc=(100*a+10*b+c)*(100*a+10*b+c) =10000*a*a+2000*a*b+100*b*... 阅读全文
posted @ 2010-04-25 20:53 北海小龙 阅读(257) 评论(0) 推荐(0) 编辑
摘要: //求最长公共子串//思路:使用string中的相应方法//教训:特别要注意临界条件#include <string>#include <iostream>#include <stdio.h>#include <algorithm>//引入algorithm类 using namespace std;bool cmp(string a,string ... 阅读全文
posted @ 2010-04-25 20:53 北海小龙 阅读(238) 评论(0) 推荐(0) 编辑
摘要: //求最大卡片数//注意精度问题,否则题目会出错#include <iostream>using namespace std;int main(){//使用double类型,如果使用float类型精度不够,会出错double data;cin>>data;while(data!=0.00 && data>=0.01 && data<... 阅读全文
posted @ 2010-04-25 20:52 北海小龙 阅读(177) 评论(0) 推荐(0) 编辑
摘要: //重点理解#include <stdio.h>int min(int a,int b,int c, int d);int i;int j;int k;int l;int main(){int data[5843];data[1]=1;i=j=k=l=1;for(int t=2;t<5843;t++){data[t]=min(2*data[i],3*data[j],5*data[... 阅读全文
posted @ 2010-04-25 20:52 北海小龙 阅读(351) 评论(0) 推荐(0) 编辑
摘要: //快速排序算法#include <iostream>using namespace std;int Partition(int a[],int p,int r);void QuickSort(int a[],int p,int r);int main(){int case_num;cin>>case_num;for(int i=0;i<case_num;i++){i... 阅读全文
posted @ 2010-04-25 20:51 北海小龙 阅读(182) 评论(0) 推荐(0) 编辑
摘要: //思路:输出N个整数,输出出现次数大于(N+1)/2的数//不要想的太复杂了#include <iostream>using namespace std;int main(){int num,i,n,x,a[32768];while(scanf("%d",&num)!=EOF){//将a进行初始化memset(a,0,sizeof(a));for(i=0;i<num;i... 阅读全文
posted @ 2010-04-25 20:50 北海小龙 阅读(201) 评论(0) 推荐(0) 编辑
摘要: //输出i和j中的最大循环长度//注意细节:i和j的大小不确定#include <stdio.h>int main(){int i,j;while(scanf("%d%d",&i,&j)!=EOF){bool isswap = false;if(i>j){ int temp=i; i=j; j=temp; isswap=true;}int maxtimes=0;... 阅读全文
posted @ 2010-04-25 20:50 北海小龙 阅读(311) 评论(0) 推荐(0) 编辑
摘要: //使用双链表list实现#include <list>#include <stdio.h>#include <iostream>using namespace std;int main(){int step,mod;char good[20]="Good Choice";char bad[20] = "Bad Choice";while(cin>>... 阅读全文
posted @ 2010-04-25 20:49 北海小龙 阅读(195) 评论(0) 推荐(0) 编辑
摘要: //水题:但有值得借鉴的地方#include <stdio.h>int fun(int n);int main(){double sum[10];sum[0]=1;printf("n e\n");printf("- -----------\n");printf("0 %d\n",1);for(int n=1;n<10;n++){sum[n]=sum[n-1]+1.0/fun(n)... 阅读全文
posted @ 2010-04-25 20:48 北海小龙 阅读(255) 评论(0) 推荐(0) 编辑
摘要: //阿牛的EOF牛肉串//思路:递推求解 p[i] = 2*(p[i-2]+p[i-2])#include <iostream>using namespace std;int main(){int n;while(cin>>n){if(n==1)cout<<3<<endl;else if(n==2)cout<<8<<endl;... 阅读全文
posted @ 2010-04-25 20:47 北海小龙 阅读(215) 评论(0) 推荐(0) 编辑
摘要: //思路:主要使用错排公式//d[1] = 0 d[2] = 1 d[n] = (n-1)*(d[n-1]+d[n-2]) #include <iostream>using namespace std;__int64 fun(int n);int main(){int case_num;cin>>case_num;for(int i=0;i<case_num;i++)... 阅读全文
posted @ 2010-04-25 20:47 北海小龙 阅读(136) 评论(0) 推荐(0) 编辑
摘要: //考新郎//思路:在错排公式的基础上加入排列组合的因素#include <iostream>using namespace std;__int64 fun(int n);int main(){int case_num;cin>>case_num;for(int i=0;i<case_num;i++){int n,m;while(cin>>n>>... 阅读全文
posted @ 2010-04-25 20:47 北海小龙 阅读(162) 评论(0) 推荐(0) 编辑
摘要: //LELE的RPG难题//思路:使用递推求解 p[i] = p[i-1] + 2*p[i-2]//其中p[i-1]表示i个中第i-1个格与第1个格的颜色不同,p[i-2]表示第i-1个格和//第1个格的颜色相同但是第i-2个格肯定与i-1个格颜色不同,种类数为p[i-2],又//因为第i-1个格和第1个格颜色相同时,第i个格可以有其余两种颜色,所以乘以2.//注:从第四个开始满足这种规律#inc... 阅读全文
posted @ 2010-04-25 20:46 北海小龙 阅读(413) 评论(0) 推荐(0) 编辑
摘要: //思路:f(n) = f(n-1)+f(n-2) 使用递推求解//从图中也可以观察出来,第N张牌的排列可以又N-1张牌的排列再在末尾加上一张竖的牌。这样依然合法。也可以在N-2张合法排列的牌后面加上两张横着放的牌(如果竖着放就和上面一种重复了)。#include <iostream>#include <stdio.h>using namespace std;int mai... 阅读全文
posted @ 2010-04-25 20:46 北海小龙 阅读(288) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>using namespace std;int mul(int a,int b);int main(){int a,b;int result;while(cin>>a>>b){if(a==0 && b==0)return 0;cout<<mul(a%1000,b)<<endl;}ret... 阅读全文
posted @ 2010-04-25 20:45 北海小龙 阅读(330) 评论(0) 推荐(0) 编辑
摘要: //超级楼梯//思路:使用递推求解 p[n] = p[n-1] + p[n-2]#include <iostream>using namespace std;int main(){int case_number;cin>>case_number;for(int i=0;i<case_number;i++){int m;cin>>m;if(m==2)cout... 阅读全文
posted @ 2010-04-25 20:45 北海小龙 阅读(186) 评论(0) 推荐(0) 编辑
摘要: // 一只小蜜蜂//思路:递推求解 p[i] = p[i-1] + p[i-2]//详细解题报告见word文档#include <iostream>using namespace std;int main(){int case_num;cin>>case_num;for(int i=0;i<case_num;i++){int a,b;cin>>a>&... 阅读全文
posted @ 2010-04-25 20:45 北海小龙 阅读(242) 评论(0) 推荐(0) 编辑
摘要: //计算直线的交点数//m条直线的交点方案数//=(m-r)条平行线与r条直线交叉的交点数 + r条直线本身的交点方案//=(m-r)*r+r条之间本身的交点方案数(1<=r<=m)#include <iostream>#include <vector>using namespace std;int main(){//使用多维数组实现,用到vector<i... 阅读全文
posted @ 2010-04-25 20:44 北海小龙 阅读(338) 评论(0) 推荐(0) 编辑
摘要: //蟠桃记//思路://天数 吃掉个数 剩余个数 吃掉与剩余的关系//0 0 F(0)//1 F(0)/2+1 F(1) = F(0)/2-1//2 F(1)/2+1 F(1) = F(1)/2-1//..............................................//n-2 F(n-3)/2+1 F(n-2) = F(n-3)/2-1//n-1 F(n-2)/2+1 ... 阅读全文
posted @ 2010-04-25 20:44 北海小龙 阅读(158) 评论(0) 推荐(0) 编辑
摘要: //母牛的故事//思路://total[0]代表0岁母牛//total[1]代表1岁母牛//total[2]代表2岁母牛//total[3]代表成年母牛 #include <iostream>using namespace std;int main(){int n;while(cin>>n && (n!=0)){int total[4]={0}; total... 阅读全文
posted @ 2010-04-25 20:44 北海小龙 阅读(274) 评论(0) 推荐(0) 编辑