ディジタルの処理


未来に憧れて、今を把握したほうがいい...
    1.Sizeofの使い方.
演算子sizeofを使用して、配列の容量(バイト数)を計算します.例に示すように、sizeof(a)の値は12('0')であることを忘れないでください.ポインタpはaを指すがsizeof(p)の値は4である.これはsizeof(p)が得たポインタ変数のバイト数であり、pが指すメモリ容量ではなくsizeof(char*)に相当するからである.C++/C言語では、メモリの申請時に記憶しない限り、ポインタが指すメモリ容量を知ることはできません.注意配列が関数のパラメータとして伝達されると、その配列は自動的に同型のポインタに劣化する.例2のように、配列aの容量にかかわらず、sizeof(a)は常にsizeof(char*)に等しい.
char a[] = "hello world";   //  1             
char *p  = a;
cout<< sizeof(a) << endl;// 12  
cout<< sizeof(p) << endl;// 4  

void Func(char a[100])   //  2
{
cout<< sizeof(a) << endl;// 4     100  
}

   2. 2つのdouble数値のサイズを比較
bool _equal(double m1,double m2){
	if((m1-m2>-0.0000001) && (m1-m2<0.0000001)){
		return true;
	}
	else
		return false;
}

    3. 長い時間をかけて書いたこのコードは、とても役に立ちます.
//      ,       
int getLength(int na){
              int length=0;
              int n=na+1;
              while(n){
                        n=n/10;
                        length++;
              }
              return length;
}
 
//  9           
void addOne(int *num,int length, int p){
              if(num[p]<9){
                            ++num[p];
                            while(p<length-1){
                                   num[++p]=0;
                            }
              }
              else{
                            ++num[p-2];
                            for(int i=p-1;i<length;i++){
                                  num[i]=0;
                            }
              }
}
 
int getMin(int na){
              int length=getLength(na)+1;//
              int *num=new int[length];
              num[0]=0;
              int i=length;
              int n=na+1;
              while(n){//       
                            num[--i]=n%10;
                            n=n/10;
              }
              int j=1;
              while(j!=length-1){
                            if(num[j]==num[j+1]){
                                          addOne(num,length,j+1);
                                          j=0;// j=0,      
                            }else{
                                          ++j;
                            }
              }
              for(int m=0;m<length;m++){
                            cout<<num[m]<<endl;
              }
              int temp=0;
              for(int j=0;j<length;j++){     //        
                            temp=num[j]+temp*10;
              }
              return temp;
}
    :    1991     , 9   : a[2]==a[3], a[3]+1,     ,    a[1]+1, a[2]--a[4]    0。