2012年11月5日
摘要: 此题是一道递归调用题的典型例子!!!应用的是倒推原理!!!关于递归调用的讲解请参考http://www.cnblogs.com/xiohao/archive/2012/10/15/2724965.html最后祝你成功Ac!!!呵呵!#include<iostream>using namespace std;int main(){ int n,sum; int f(int m); while(cin>>n) {sum=f(n);printf("%d\n",sum); } return 0;}int f(int m){if(m==1) return 1; 阅读全文
posted @ 2012-11-05 18:04 @ 小浩 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 此题还是一道规律题,不能直接算!!!否则将超时!!呵呵!先观察计算出前30项如下:1 2 0 2 2 1 0 1 1 2 0 2 2 1 0 1.......规律出来了!哈!那还等什么,直接ac掉!!!#include<iostream>using namespace std;int main(){ int n,i,a[]={1,2,0,2,2,1,0,1}; while(cin>>n) { i=n%8; if(a[i]==0)cout<<"yes"<<endl;else cout<<"no"& 阅读全文
posted @ 2012-11-05 18:01 @ 小浩 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 此题也是一道观察规律的问题!!!不可能直接算,否这肯定超时!呵呵!!先假设a=3,b=4,那么结果是:0,4,5,3,1,1;呵呵!你是否发现循环了哈!!那就对了!问题不就解决了吗?哈!自己创建一个数组来厨房这个循环不就ok了吗?哈哈!let's go!!!#include<iostream>using namespace std;int main(){ int a,b,n,A[50],i; while(cin>>a>>b>>n) { if(a==0&&b==0&&n==0) break; else if( 阅读全文
posted @ 2012-11-05 18:00 @ 小浩 阅读(356) 评论(0) 推荐(0) 编辑
摘要: sort()和qsort(),顾名思义,就是排序函数!!!目的就是简化程序,是程序看起来更加规范实用!!!呵呵!!1)sort()在使用sort()函数的时候在前面加上#include<algorithm>头文件!升序发排序:int a[10];sort(a,a+10);例子如下:#include<iostream>#include<algorithm>using namespace std;int main(){int i;int a[10];for(i=0;i<10;i++) cin>>a[i]; sort(a,a+10); for(i 阅读全文
posted @ 2012-11-05 15:07 @ 小浩 阅读(676) 评论(0) 推荐(0) 编辑
  2012年11月4日
摘要: 此题是一道数学题,也是一道技巧题,也是不能直接算的,否则会超时的!!!此题思路:设n^n=d.xxxx*10^(k-1),其中k表示n^n的位数;d.xxxx=10^(log10(n^n)-(k-1));其中k=(__int64)(log10(n^n)+1;所以d=(int)(10^(log10(n^n)-(k-1)))=(int)(10^(log10(n^n)-((__int64)(log10(n^n)+1;-1)));此题思路比较麻烦,但程序还是很简单的哈!#include<iostream>#include<math.h>using namespace std;i 阅读全文
posted @ 2012-11-04 20:47 @ 小浩 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 此题是一道观察技巧题!先找规律,然后再做,如果直接来的话,肯定会超时的哈!对于然和一个输入的整数m,先判断它的尾数是几,然后须寻找规律,1)当尾数是 0,1,5,6的时候,无乱多少次方,其尾数都不变,及周期是1。2)当尾数是 4:(4,9) 周期是2;当尾数是9:(1,9) 周期也是2; 3)当尾数是2,3,7,8的时候,2:(2,4,8,6);周期是4; 3:(3,9,7,1); 7:(7,9,3,1); 8:(8,4,2,6);哈哈!规律已经有了!剩下看你的了哈! #include<iostream>using namespace std;int main(){ int n,m 阅读全文
posted @ 2012-11-04 18:59 @ 小浩 阅读(377) 评论(0) 推荐(0) 编辑
摘要: memset函数的原型是:void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。说白了,就是对数组从s位置开始的n个字节依次附上相同的值c!但话说回来了,此函数的主要作用还是数组的初始化!!int a[100];memset(a,0,sizeof(a));此函数即将数组进行初始化!!例子1:赋值#include<iostream>#include<string.h>using namespace std;int main(){char a[10]; memset(a,0,sizeof(a) 阅读全文
posted @ 2012-11-04 18:07 @ 小浩 阅读(807) 评论(0) 推荐(0) 编辑
摘要: 此题是一道简单的程序应用题!!也没有太多好说的,哈!!!直接ac!!**关于函数memset()的讲解请参考:http://www.cnblogs.com/xiohao/archive/2012/11/03/2752225.html#include<iostream>#include<cstring>using namespace std;int main(){char a[205],b[205];int i;while(gets(a)){ if(strcmp(a,"START")==0) { memset(a,0,sizeof(a)); memse 阅读全文
posted @ 2012-11-04 18:07 @ 小浩 阅读(481) 评论(0) 推荐(0) 编辑
  2012年11月3日
摘要: #include "stdio.h"#include "string.h"void main(){char aa[10];printf("%d",strlen(aa));printf("%d",sizeof(aa));}程序运行得到结果是strlen(aa)=15.sizeof(aa)=10;这是怎么回事呢?strlen是有效字符串的长度,不包含‘\0’,与初始化有关系,而sizeof与初不初始化没有关系。下面我们看看它们的区别吧(以下都是在网上查的)strlen(char*)函数求的是字符串的实际长度,它求得方法 阅读全文
posted @ 2012-11-03 13:15 @ 小浩 阅读(208) 评论(0) 推荐(0) 编辑
  2012年10月29日
摘要: 此题的思路是穷举法,有就是从第一个朋友开始,依次算出最短距离,然后求出最短的距离!*对于sum=0xffffff的讲解请参考本人的http://www.cnblogs.com/xiohao/archive/2012/10/10/2718747.html祝你成功ac!!呵呵!#include<iostream>#include<cmath>using namespace std;int main(){int M,N,i,a[10005],j;__int64 sum,s;scanf("%d",&M);while(M--){sum=0xffffff 阅读全文
posted @ 2012-10-29 20:34 @ 小浩 阅读(309) 评论(0) 推荐(0) 编辑