題目描述:
/**
牛牛選擇了乙個正整數x,然後把它寫在黑板上。
然後每一天他會擦掉當前數字的最後一位,直到他擦掉所有數字。
在整個過程中,牛牛會把所有在黑板上出現過的數字記錄下來,
然後求出他們的總和sum.
例如x = 509, 在黑板上出現過的數字依次是509, 50, 5, 他們的和就是564.
牛牛現在給出乙個sum,牛牛想讓你求出乙個正整數x經過上述過程的結果是sum.
輸入描述:
輸入包括正整數sum(1 ≤ sum ≤ 10^18)
輸出描述:
輸出乙個正整數,即滿足條件的x,如果沒有這樣的x,輸出-1。
輸入例子1:
564輸出例子1:
509*/
思路如下:
對於乙個數x, 是digit位
那麼其對應的sum為x+x/10+x/100+...+(x/(10^(digit-1)))
那麼乙個sum題目現在最多是19位
那麼可以列舉digit,對於每乙個可能的digit根據sum,反過來求乙個xx
比如sum/(111..1)乙個digit個1得到的就是第一位
同理更新sum後得到第二位
要知道如果sum是d位的數,那麼x一定是d位或者d-1位數,否則不可能
137174210616796
123456789555123
**如下:
#include#include#define max_digit 19
typedef long long ll;
using namespace std;
int getdigit(ll num)
return digit;
}//digit只會是sumdigit或者sumdigit-1
ll getcandidate(int digit, int sumdigit, ll sum)
if(tempsum!=0)
return -1;
return candidate;
}int main()
printf("%lld", x);
return 0;
}
愛奇藝 筆試刷題
題目描述 牛牛和羊羊非常無聊.他們有n m個共同朋友,他們中有n個是無聊的,m個是不無聊的。每個小時牛牛和羊羊隨機選擇兩個不同的朋友a和b.如果存在多種可能的pair a,b 任意乙個被選到的概率相同。然後牛牛會和朋友a進行交談,羊羊會和朋友b進行交談。在交談之後,如果被選擇的朋友之前不是無聊會變得...
愛奇藝 筆試刷題
題目描述 乙個完整的括號字串定義規則如下 1 空字串是完整的。2 如果s是完整的字串,那麼 s 也是完整的。3 如果s和t是完整的字串,將它們連線起來形成的st也是完整的。例如,和 是完整的括號字串,和 是不完整的括號字串。牛牛有乙個括號字串s,現在需要在其中任意位置盡量少地新增括號,將其轉化為乙個...
愛奇藝 筆試刷題
題目描述 牛牛學習了氣泡排序,並寫下以下氣泡排序的偽 注意牛牛排序的陣列a是從下標0開始的。bubblesort a repeat length a 1 times for every i from 0 to length a 2 if a i a i 1 then swap a i and a i...