Leetcode problemi çözmeye çalışıyorum. Soru benden şunu yapmamı istiyor. Öncelikle bir integer arrayi ve bir integer değer veriyor. Sonrasında arrayi integer formuna dönüştürüp diğer integer değerle toplamalıyım. En sonda çıkan değeri ise tekrar integer array formuna çevirmeliyim.
Şu şekilde bir örnekle anlatırsam daha kolay olacak;
Ben şöyle bir adım izledim;
Kodum şu şekilde:
Şu şekilde bir örnekle anlatırsam daha kolay olacak;
- Inputlardan biri num arrayi olsun. int num[] = {1,2,3,4};
- Diğer input ise a = 30 olsun.
Ben şöyle bir adım izledim;
- Verilen arrayi integer sayıya çevir
- Bulduğun sayının basamak sayısını hesapla
- For'un içinde bulduğun basamak sayısı kadar dönerek sayıyı tekrar arraya çevir
Kodum şu şekilde:
C:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* addToArrayForm(int* num, int numSize, int k, int* returnSize)
{
long long sum = 0,sumCopy;
int digit = 0;
for(int i = 0; i < numSize; i++)
{
sum = sum * 10 + num[i];
}
sum += k;
sumCopy = sum;
while(sumCopy > 0)
{
sumCopy /= 10;
digit++;
}
*returnSize = digit;
int* returnValue = (int*)malloc(digit*sizeof(int));
for(int j = digit; j > 0; j--)
{
returnValue[j] = sum % 10;
sum /= 10;
}
return returnValue;
}