Если вы разработчик программного обеспечения или программист, вы знаете, что во всех больших проектах, личных проектах, проблемах с кодом или даже небольших программах, которые вы создаете в первый месяц своего пути к кодированию, для решения проблем, которые у вас есть разбить проблему на более простые задачи. в этой статье я собираюсь показать вам несколько приемов, которые весьма полезны и практичны при решении проблем с кодированием, чтобы вы могли перестать искать переполнение стека:0. Я буду писать приложения (то, что я сделал, когда использовал их), код на моем любимом языке программирования: C++, я стараюсь сделать свой код независимым от языка.
1-массив в целое число и целое число в массив:
начнем с первого, массива в Int. он может понадобиться вам при работе с массивами, как и мне. это очень просто, нам нужна степенная функция и обратная версия целого числа, мы сохраняем элементы в виде цифр.
#include <iostream> #include <cmath> using namespace std; int main (){ int arr[4] = {1,2,4,5} , num = 0, n = 4 , i ; for (i=0;i<n;i++){ num += arr[i]*pow(10,i); } int lastdigit, reversed=0; while(num>0){ lastdigit = num % 10 ; reversed = (reversed*10) + lastdigit; num/=10 ; } cout << reversed; return 0 ; }
это решение чрезвычайно эффективно, позвольте мне объяснить первый цикл for, в котором мы сохраняем элементы в виде цифр в переменной «num». он хранит каждый элемент в позиции I и, учитывая позицию, делает 10 в степени I . например, для первой позиции 10 в степени 0 равно 1, поэтому он сохраняет элемент в первом десятичном разряде. позвольте мне объяснить обратную часть, сначала взгляните на это:
13244 % 10 = 4 ( last digit ) 13244 / 10 = 1324 ( removes last digit )
вы должны понимать это для программы Integer to array of digits. В части с обратной переменной он также имеет стратегию степенной десятичной дроби.
Int в массив:
#include <iostream> using namespace std; int main (){ int i,n = 1323; string l = to_string(n); int len = l.length(); int arr[len]; for (i=0;i<len;i++){ arr[i] = n % 10 ; n/= 10; } return 0 ; }
этот не нуждается в объяснении, со строкой мы получаем длину, затем делаем n по модулю 10, затем n делим 10.
2 символа в массив
#include <iostream> using namespace std; int main (){ char arr[3] = {'1','2','3'}; int arrInt[3],x; for (x=0;x<3;x++){ arrInt[x] = arr[x] - '0'; } return 0 ; }