日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UVa 11121 - Base -2 负进制的转化和推广

發布時間:2025/3/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVa 11121 - Base -2 负进制的转化和推广 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2062


題目大意就是給你一個-1000,000,000到1000,000,000的數轉化成-2進制。

看到-2就想到了2進制,原先想兩位兩位地考慮,然后看成2進制的,接下來求一下方程的正數解就行了,然后將那些數全都轉化成0和1,后來又發現。。每項之間差了4倍,頓時就不行了。接著想著是不是能將 (-2)^k 和 2^k 聯系起來,那問題就簡單了。

后來看到了一個式子,頓時有了點靈感 : (4)^3 = (-4)^4 + (4 - 1) * (-4)^3

想了想后總結出來了一個結論

①當k是奇數的時候, 2^k = (-2)^(k+1) + (-2)^k;

②當k是偶數的時候, 2^k = (-2)^k;

推導的過程中也有遇到一些問題,一直想把偶數和奇數的情況聯系在一起,但是感覺做不到,而且可能會出現負數,出現負數就不好處理了。

有了以上的結論,差不多就可以開始動手了。但是突然想到,負數的話,算出來的東西就會出問題了,想了想,負數和整數應該有類似的結論,經過嘗試后推倒出這樣的結論。

①當k是奇數的時候, -2^k = (-2)^k;

②當k是偶數的時候, -2^k = (-2)^(k + 1) + (-2)^(k + 1);

接下來就開始寫代碼了,但是測試了一下,一些數轉化后出現了讓人覺得很囧的大于1的數字,突然想到還要經行進位處理。想了想挺容易推導的,但是注意最好不要出現負數的情況,不然就不好處理了。

2 * (-2)^k = (-2)^(k + 1) + (-2)^(k + 2);

于是進位的操作就ok了

但程序到這里還是有bug的,試了一下1000,000,000,結果發現后面的結果還是很正常,前面多出了個4,頓時覺得很納悶,然后認真地調試了下,發現出現了一個4和2的循環,高位的系數是2,低位的系數是4,突然反應過來,完全是可以抵消掉的,但是沒有抵消就出現了4和2的循環。

ans[k+1] = 2ans[k];

每次進位前先進行抵消操作,然后開始進位,接下來程序終于沒了bug了,順利AC了。


其實這個還是可以推廣的,按照剛才的公式,我們假設現在是(-b)進制,有以下的結論

n為正數

①當k為奇數的時候,b^k = (-b)^(k + 1) + (b - 1) * (-b)^k

②當k為偶數的時候,b^k = (-b)^k;

n為負數

①當k為奇數的時候,- b^k = (-b)^k;

②當k為偶數的時候,- b^k = (-b)^(k + 1) + (b - 1) * (-b) ^ k;

進位:

①當k為偶數的時候,b * (-b)^k = (-b)^(k + 1);

②當k為奇數的時候,b * (-b)^k = - b^(k + 1) = - (-b)^(k + 1) = - b^(k + 1) =?(-b)^(k + 2) + (b - 1) * (-b)^(k + 1);

抵消

ans[k+1] = b * ans[k];

?

#include<cstdio> #include<cstring> #include<iostream> using namespace std; typedef long long LL; const int MAXN = 64 + 5;int n, flag; int ans[MAXN];int main() {int tCase;while(scanf("%d", &tCase) != EOF)for(int T = 1; T <= tCase; ++ T){flag = 1;scanf("%d", &n);memset(ans, 0, sizeof(ans));if(n < 0){flag = 0;n = ~n + 1;}//轉化for(int i = 0; i < 31; ++ i)if(n & (1 << i)){++ans[i];if((i & 1) == flag)++ans[i + 1];}//進位for(int i = 0; i < MAXN - 1; ++ i){//抵消if(ans[i] >= ((ans[i + 1] >> 1) << 1)){ans[i] -= ((ans[i + 1] >> 1) << 1);ans[i + 1] -= (ans[i + 1] >> 1);}while(ans[i] > 1){++ans[i + 1];++ans[i + 2];ans[i] -= 2;}}printf("Case #%d: ", T);for(int i = MAXN - 1; i > 0; -- i)if(ans[i] != 0){for(int j = i; j > 0; --j)putchar(ans[j] + '0');break;}putchar(ans[0] + '0');putchar('\n');}return 0; } View Code

?

?

?


?

轉載于:https://www.cnblogs.com/tank39/p/3911404.html

總結

以上是生活随笔為你收集整理的UVa 11121 - Base -2 负进制的转化和推广的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣潜藏淫欲 | 久久91精品国产 | 午夜簧片| 粉嫩精品久久99综合一区 | 日本不卡高字幕在线2019 | 亚洲激情图 | 中文欧美日韩 | 性生交大片免费看3p | 久久福利小视频 | 国产午夜精品在线观看 | 五月婷在线视频 | 久操免费在线 | 男女男精品视频网站 | 免费一级片网址 | 9999精品| 欧美熟妇精品一区二区 | 色就是色亚洲色图 | 老司机精品福利导航 | 国产亚洲精品aaaaaaa片 | 原神女裸体看个够无遮挡 | 另类ts人妖一区二区三区 | 国产在线视频一区二区三区 | 佐佐木明希av在线 | 人人草av| 久久无码国产视频 | 日韩久久影视 | 香蕉视频ap | www.久久久久久| 亚洲精品20p| 奶水喷溅 在线播放 | 欧美不卡在线视频 | 免费黄色看片网站 | 色乱码一区二区三区熟女 | 亚洲涩视频| 在线成人影视 | 欧美成人一区二区在线 | 国产精品无码一区二区三区 | 久久97人妻无码一区二区三区 | 一区二区三区美女视频 | 人人看超碰 | 一区www| 欧美群妇大交群 | 91啦丨九色丨刺激 | 国产97色在线 | 日韩 | 高h免费视频 | 欧美做爰全过程免费看 | 老司机在线精品视频 | 狠狠狠 | 黄页网站免费在线观看 | 青青青国内视频在线观看软件 | 毛片一区二区 | 一区二区三区免费看 | 黄色录像大片 | 精品视频不卡 | 四虎网站在线观看 | 午夜激情电影在线观看 | 日韩精品在线观看一区二区三区 | 亚洲一区二区三区激情 | wwwav在线播放 | 亚洲av无码一区二区二三区软件 | 日韩美女视频在线观看 | 美女性高潮视频 | 视频在线 | 久久精品视频无码 | 成人免费毛片观看 | 久久精品免费观看 | 三级视频在线 | 国产在线免费视频 | 欧美日韩在线免费观看 | 麻豆爱爱| 麻豆精品国产传媒 | 国产区免费观看 | 欧美性猛交xxxx乱大交 | 亚洲aaaaaaa | jizz免费在线观看 | 91欧美一区二区三区 | 一级黄网站 | 日韩成人午夜电影 | 亚洲欧美另类自拍 | 国产妇女馒头高清泬20p多 | 人成免费在线视频 | 91视频精选| 自拍三区 | 精品久久久亚洲 | 国产精品二区一区二区aⅴ污介绍 | 欧美一区二区三区成人片在线 | 国产乱码精品一区二区三区中文 | 激情久久五月天 | 丝袜美女av | 亚洲一区二区三区在线看 | 亚洲天堂成人av | 一区二区三区啪啪啪 | 精品国产一区二区视频 | 污污小视频 | 九色91视频 | 免费看污片的网站 | 国内精品小视频 | 午夜毛片在线观看 | 欧美日韩丝袜 |