Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:为什么我的程序会消耗那么多内存!?有什么办法么?各位大侠帮帮忙吧……谢谢了!!^_^In Reply To:为什么我的程序会消耗那么多内存!?有什么办法么?各位大侠帮帮忙吧……谢谢了!!^_^ Posted by:wxn0000 at 2005-03-16 22:15:27 > #include<iostream> > #include<cstring> > #include<stdlib.h> > using namespace std; > > void invent(char *, char *); > int isInv(int); > > char num[16][81]; > > void main() > { > int i, stat = 0; > cin >> num[0]; > while( strcmp(num[0], "-1") ) > { > for( i = 0; i < 15; i ++ ) > { > invent(num[i], num[i+1]); > stat = isInv(i+1); > if( !stat ) > break; > } > if(stat) > cout << num[0] << " can not be classified after 15 iterations" << endl; > for( i = 0; i < 16; i ++ ) > strcpy( num[i], "\0" ); > cin >> num[0]; > } > } > > void invent(char *a, char *b) > { > int i; > int temp[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; > int len = strlen(a); > int blen = strlen(b); > > for( i = 0; i < len; i ++ ) > temp[ a[ i ] - '0' ] ++; > for( i = 0; i < 10; i ++ ) > { > if( !temp[ i ] ) > continue; > char *t1 = new char[2]; > char *t2 = new char[3]; > sprintf(t1, "%d", i); > sprintf(t2, "%d", temp[ i ]); > strcat(t2, t1); > strcat(b, t2); > } > } > > int isInv(int pos) > { > int i, j; > for( i = 1; i <= pos; i ++ ) > { > if( strcmp(num[1], num[0]) == 0 ) > { > cout << num[0] << " is self-inventorying" << endl; > return 0; > } > if( strcmp(num[i], num[i-1]) == 0 ) > { > cout << num[0] << " is self-inventorying after " << i-1 << " steps" << endl; > return 0; > } > for( j = 0; j < i; j ++ ) > { > if( strcmp(num[i], num[j]) == 0 ) > { > cout << num[0] << " enters an inventory loop of length " << i - j << endl; > return 0; > } > } > } > > return 1; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator