2013年7月18日

摘要: 思路对于一个数N,N的最高位数值为T,N长度为L ,那么我们可以吧N分为两个部分 ,令M=N-T*10^(L-1)+1, 分割为[0,M-1] 和 [M,A]两个部分,第一个部分可以用递归来求解,第二个部分要计算了, 首先我们知道 000~999当中存在一的个数为 10^(L-1)*L,L为999的位长度, 那么就可以通过此来计算[M,A]中有多少个1了#include#include#includeusing namespace std;int fun(int n){ //cout<<n<<endl; int L=0,T,a,M,sum; a=n; while(a!= 阅读全文
posted @ 2013-07-18 11:20 dyc0113 阅读(496) 评论(0) 推荐(0) 编辑
摘要: void Reverse(char *p,char *q){ while(p<q) { swap(*p,*q); p++; q--; }}void main(){ char s[]="i come from tianjin."; char *p=s,*q=s+strlen(s)-1; Reverse(p,q); p=s; q=s; while(true) { if(*q==' ') { Reverse(p,q-1); p=... 阅读全文
posted @ 2013-07-18 10:40 dyc0113 阅读(1337) 评论(0) 推荐(0) 编辑

导航