這是一個倒數的公式嗎?算法倒數
例如123-321?
編號爲K
INV k = k%100 + K/10%,10 * 10 + K%10 * 100
我不知道我究竟寫的,我需要這種權利在學校的圖形算法
編輯任務:是的,我很愚蠢的xD我是初學者的xD
這是一個倒數的公式嗎?算法倒數
例如123-321?
編號爲K
INV k = k%100 + K/10%,10 * 10 + K%10 * 100
我不知道我究竟寫的,我需要這種權利在學校的圖形算法
編輯任務:是的,我很愚蠢的xD我是初學者的xD
這個邏輯會幫助你。變量inverse是輸出。
int num = 123;
double inverse = 0;
while (num != 0)
{
inverse = inverse * 10;
inverse = inverse + num % 10;
num = num/10;
}
爲什麼'inverse'的類型是'double'而不是'int'? –
謝謝J. Piquard先生的評論......應該是int。但是雙倍也沒有問題。 –
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i = 123045 , j = 0,k=0;
while(i != 0)
{
j=i%10;
k = k *10 + j;
i /=10;
}
printf("%d\n", k);
return 0;
}
輸出 540321
如果您希望您的代碼與任何數量的工作,可以考慮轉換爲字符串,然後扭轉它!
int invert(int input)
{
std::stringstream str;
str << input;
std::string s = str.str();
std::reverse(s.begin(),s.end());
return atoi(s.c_str());
}
我寧願直接在整數中做它,而不是做不必要的轉換到/從字符串(涉及動態內存分配btw。)。 – axalis
我會分開計算更多,使他們更容易遵循,如'units = K%10;數十= ...;數百= ...;'然後當這些數字全部分開時,再次將它們合併爲'inv = 100 * units + 10 * ten + hundred;'。 –
你對問什麼不是很清楚。 123-321是你收到的一個字符串,必須驗證它是一個迴文。你收到'123'並且必須返回'321'?你收到的號碼總是3位數字嗎? – AntonH
我不需要寫這個程序,但是我會繪製一個3位數的算法。 這是好方法還是不好? 我的英文很抱歉xD –