コード例 #1
0
ファイル: 032.c プロジェクト: dege88/project-euler-solutions
int arePandigital(int number1, int number2)
{
	int product = number1 * number2;
	int numberList[10];
	int i, flag;
	if(((digitCount(number1) + digitCount(number2) + digitCount(product)) == 9) && (hasNoReplicatingNumbers(product)))
	{
		for(i = 0;i <= 9;i++) numberList[i] = 0;
		while(number1 > 0)
		{
			numberList[number1 % 10]++;
			number1 /= 10;
		}
		while(number2 > 0)
		{
			numberList[number2 % 10]++;
			number2 /= 10;
		}
		while(product > 0)
		{
			numberList[product % 10]++;
			product /= 10;
		}
		for(i = 1, flag = 1;(flag == 1) && (i <= 9);i++)
			if(numberList[i] != 1)
				flag = 0;
		return (flag == 1);
	}
	else
		return 0;
}
コード例 #2
0
void AWSClient::initSignedHeaders() {
    /* For each of the formats for unsigned headers, determine the size of the
     * formatted string, allocate that much space in the next available element
     * in the headers array, create the string, and add it's length to the
     * headerLens array. */

    int contentLen = payload.length();
    int len = CONTENT_LENGTH_HEADER_LEN + digitCount(contentLen);
    headers[headersCreated] = new char[len + 1]();
    sprintf(headers[headersCreated], CONTENT_LENGTH_HEADER, contentLen);
    headerLens[headersCreated++] = len;

    len = CONTENT_TYPE_HEADER_LEN + strlen(contentType);
    headers[headersCreated] = new char[len + 1]();
    sprintf(headers[headersCreated], CONTENT_TYPE_HEADER, contentType);
    headerLens[headersCreated++] = len;

    len = HOST_HEADER_LEN + strlen(awsService) + strlen(awsRegion)
            + strlen(awsEndpoint);
    headers[headersCreated] = new char[len + 1]();
    sprintf(headers[headersCreated], HOST_HEADER, awsService, awsRegion,
            awsEndpoint);
    headerLens[headersCreated++] = len;

    len = X_AMZ_DATE_HEADER_LEN + AWS_DATE_LEN + AWS_TIME_LEN;
    headers[headersCreated] = new char[len + 1]();
    sprintf(headers[headersCreated], X_AMZ_DATE_HEADER, awsDate, awsTime);
    headerLens[headersCreated++] = len;

    len = X_AMZ_TARGET_HEADER_LEN + strlen(target);
    headers[headersCreated] = new char[len + 1]();
    sprintf(headers[headersCreated], X_AMZ_TARGET_HEADER, target);
    headerLens[headersCreated++] = len;
}
コード例 #3
0
ファイル: arnes_library.cpp プロジェクト: enra64/PKES
void serialWriteUint16_0(uint16_t val){
	//get the number of digits
	uint8_t numberOfDigits = digitCount(val);
	//create buffer for result
	char resultString[numberOfDigits];
	//convert to string
	utoa(val, resultString, 10);
	//write to serial
	serialWriteString_0(resultString);
}
コード例 #4
0
ファイル: arnes_library.cpp プロジェクト: enra64/PKES
void serialWriteInt16_0(int16_t val){
	//get the number of digits
	uint8_t numberOfDigits = digitCount(val);
	//alloc space for minus sign
	if(val < 0)
		numberOfDigits++;
	//create buffer for result
	char resultString[numberOfDigits];
	//convert to string
	itoa(val, resultString, 10);
	//write to serial
	serialWriteString_0(resultString);
}
コード例 #5
0
int QLCDNumber::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QFrame::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        if (_id < 9)
            qt_static_metacall(this, _c, _id, _a);
        _id -= 9;
    }
#ifndef QT_NO_PROPERTIES
      else if (_c == QMetaObject::ReadProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast< bool*>(_v) = smallDecimalPoint(); break;
        case 1: *reinterpret_cast< int*>(_v) = numDigits(); break;
        case 2: *reinterpret_cast< int*>(_v) = digitCount(); break;
        case 3: *reinterpret_cast< Mode*>(_v) = mode(); break;
        case 4: *reinterpret_cast< SegmentStyle*>(_v) = segmentStyle(); break;
        case 5: *reinterpret_cast< double*>(_v) = value(); break;
        case 6: *reinterpret_cast< int*>(_v) = intValue(); break;
        }
        _id -= 7;
    } else if (_c == QMetaObject::WriteProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: setSmallDecimalPoint(*reinterpret_cast< bool*>(_v)); break;
        case 1: setNumDigits(*reinterpret_cast< int*>(_v)); break;
        case 2: setDigitCount(*reinterpret_cast< int*>(_v)); break;
        case 3: setMode(*reinterpret_cast< Mode*>(_v)); break;
        case 4: setSegmentStyle(*reinterpret_cast< SegmentStyle*>(_v)); break;
        case 5: display(*reinterpret_cast< double*>(_v)); break;
        case 6: display(*reinterpret_cast< int*>(_v)); break;
        }
        _id -= 7;
    } else if (_c == QMetaObject::ResetProperty) {
        _id -= 7;
    } else if (_c == QMetaObject::QueryPropertyDesignable) {
        _id -= 7;
    } else if (_c == QMetaObject::QueryPropertyScriptable) {
        _id -= 7;
    } else if (_c == QMetaObject::QueryPropertyStored) {
        _id -= 7;
    } else if (_c == QMetaObject::QueryPropertyEditable) {
        _id -= 7;
    } else if (_c == QMetaObject::QueryPropertyUser) {
        _id -= 7;
    }
#endif // QT_NO_PROPERTIES
    return _id;
}
コード例 #6
0
ファイル: 032.c プロジェクト: dege88/project-euler-solutions
void main()
{
	int a, b, sum;
	int products[51];
	products[50] = 0;
	for(a = 1;a < power(10, 7);a++)
		if(hasNoReplicatingNumbers(a))
			for(b = 1;b < power(10, 8 - digitCount(a));b++)
				if(arePandigital(a, b))
					add(products, a * b);
	for(products[50]--,sum = 0;products[50] >= 0;products[50]--)
		sum += products[products[50]];
	printf("solution: %d\n",sum);
}
コード例 #7
0
int main()
{
	int n;
	int num;

	scanf("%d", &n);



	while (n >= 1) {
		scanf("%d", &num);
		printf("%d\n", digitCount(num));
		--n;
	} // end while

	return 0;
} // end main()
コード例 #8
0
ファイル: arnes_library.cpp プロジェクト: enra64/PKES
void writeSerialDecimal_0(int val){
	//get the number of digits
	uint8_t numberOfDigits = digitCount(val);
	//alloc space for minus sign
	if(val < 0)
		numberOfDigits++;
	//alloc
	char resultString[numberOfDigits];
	//save digits as ascii char in array
	//for(int i = 0; i < numberOfDigits; i++)
	for(int i = numberOfDigits - 1; i >= 0; i--)
		resultString[i] = (int)(val / pow(10, i)) % 10 + 48;//get digit, convert to ascii
	//add a minus
	if(val < 0)
		resultString[numberOfDigits - 1] = '-';
	//write to serial
	writeSerial_0(resultString, numberOfDigits);
}
コード例 #9
0
unsigned char * uintToString(unsigned int valor, unsigned char minCantDigitos, unsigned char * str){
    unsigned char cantDigitos = 1;
    char i;

    cantDigitos = digitCount(valor);

    if (minCantDigitos > cantDigitos)
        cantDigitos = minCantDigitos;

    for (i = cantDigitos; i > 0; i--){
        str[i-1] = '0' + valor % 10;
        valor /= 10;
    }

    str += cantDigitos;
    *str = '\0';

    return str;
}
 string originalDigits(string s) {
     vector<int> count(26,0);
     for(auto c : s){
         count[c - 'a']++;
     }
     // zero one two three four five six seven eight nine
     vector<int> digitCount(10,0);
     vector<string> checkOrder = {"zero", "six", "seven", "five", "eight", "four", "two", "three", "nine", "one"};
     vector<int> checkDigit = {0, 6, 7, 5, 8, 4, 2, 3, 9, 1};
     vector<char> checkChar = {'z', 'x', 's', 'v', 'g', 'u', 'w', 'r','i','o'};
     for(int i = 0; i < checkChar.size(); i++){
         while(count[checkChar[i] - 'a'] > 0){
             digitCount[checkDigit[i]]++;
             for(auto c : checkOrder[i]) count[c - 'a']--;
         }
     }
     string res;
     for(int i = 0; i < digitCount.size(); i++){
         for(int t = 0; t < digitCount[i]; t++) res += to_string(i);
     }
     return res;
 }
コード例 #11
0
// ---------------------------------------------------------------------------
// CDTMFPayloadFormatWrite::SendDTMFTonesL
// Starts to send DTMF string incrementally until the string is sent.
// ---------------------------------------------------------------------------
//
void CDTMFPayloadFormatWrite::SendDTMFTonesL( const TDesC8& aTones )
    {
    DP_DTMF_WRITE( _L("CDTMFPayloadFormatWrite::SendDTMFTonesL") );
    
    TInt digitCount( aTones.Length() );
    __ASSERT_ALWAYS( digitCount != 0, User::Leave( KErrArgument ) );
    __ASSERT_ALWAYS( IsValidDigits( aTones ), User::Leave( KErrArgument ) );
    __ASSERT_ALWAYS( !iSendTimer->IsActive(), User::Leave( KErrNotReady ) );
    
    iSendingMode = EModeAutomatic;
    
    iSendBuffer.Reset();
    for ( TInt i = 0; i < digitCount; i++ )
        {
        // in automatic mode default durations for tones are used
        TSendBufferElement element( aTones[i], 0 );
        iSendBuffer.AppendL( element );
        }
    
    iSinkBuffer->Data().FillZ( KDTMFDefaultPayloadSize );
    iStateMachine->ChangeStateTo( EStateEncodeNextDigit );
    }
コード例 #12
0
ファイル: arnes_library.cpp プロジェクト: enra64/PKES
/*
 * Displays a number on the seven segment display
 */
void displayNumber(double val){
	//get integer part
	uint8_t asInteger = (int) val;
	//where would the comma be
	uint8_t digitsBeforePoint = digitCount(asInteger);
	//f**k it, the comma would be useless anyway
	if(digitsBeforePoint >= 3)
		displayNumber(asInteger);
	else{
		//create all zero data array
		unsigned char data[3] = {0, 0, 0};
		//load digits
		if(digitsBeforePoint == 2){
			data[0] = NUMBERS_7SD[getDigit(val, 1)];
			data[1] = NUMBERS_7SD[getDigit(val, 0)] + 1;
			data[2] = NUMBERS_7SD[getDigit(val, -1)];
		}
		else if(digitsBeforePoint == 1){
			data[0] = NUMBERS_7SD[getDigit(val, 0)] + 1;
			data[1] = NUMBERS_7SD[getDigit(val, -1)];
			data[2] = NUMBERS_7SD[getDigit(val, -2)];
		}
		else {
			data[0] = NUMBERS_7SD[getDigit(val, -1)] + 1;
			data[1] = NUMBERS_7SD[getDigit(val, -2)] + 1;
			data[2] = NUMBERS_7SD[getDigit(val, -3)] + 1;
		}
		//display comma
		if(digitsBeforePoint > 0)
			data[digitsBeforePoint - 1] |= 1;
		else{
			//make all have commas to show that have 0.xyz
			for(int i = 0; i < 3; i++)
				data[i] |= 1;
		}
		//send
		send7SDTransmission(data);
	}
}
コード例 #13
0
ファイル: qlcdnumber.cpp プロジェクト: venkatarajasekhar/Qt
/*!\reimp
*/
QSize QLCDNumber::sizeHint() const
{
    return QSize(10 + 9 * (digitCount() + (smallDecimalPoint() ? 0 : 1)), 23);
}