日韩性视频-久久久蜜桃-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 负进制的转化和推广的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品一区二区久久国产 | 免费看a级黄色片 | 激情视频免费在线观看 | 在线看v片 | 日韩免费在线观看 | 超碰caopor | 久久精品国产99久久久 | 石原莉奈在线播放 | 日本不卡一区在线 | 国产在线一卡二卡 | 在线看片网址 | 91嫩草视频在线观看 | 农村村妇真实偷人视频 | 亚洲视频中文 | 8x8x成人 | 国产精品久久久一区二区三区 | 久久久久亚洲av成人片 | 草草在线影院 | 国产这里有精品 | 中文字幕一区二区三区日韩精品 | 91精品国产91久久久久久 | 日韩精品无码一区二区三区 | 久久99热这里只频精品6学生 | 非洲黑人毛片 | 久久午夜影院 | 丰满女邻居的色诱4hd | 日韩黄色av网站 | 91丝袜在线| 黄色片子一级 | 草草在线影院 | 波多野结衣免费观看视频 | 羞羞影院体验区 | 毛片a片免费观看 | sm国产在线调教视频 | 麻豆精品国产传媒mv男同 | 90岁老太婆乱淫 | 黄色小视频在线观看 | 日韩av在线一区二区 | 亚洲天堂成人网 | 超污巨黄的小短文 | 亚洲AV成人无码久久精品巨臀 | 伊人影院在线视频 | 国产综合无码一区二区色蜜蜜 | 中国一级片黄色一级片黄 | 亚洲影库 | 麻豆网站| 好男人.www | 欧美亚洲二区 | 欧美一区网站 | 欧美少妇视频 | 97视频播放 | 日本嫩草影院 | 一级国产视频 | 91 在线视频 | 亚洲自拍第二页 | 天天爽天天爽夜夜爽毛片 | 一本久道久久综合无码中文 | 日韩福利在线播放 | 色视频网站 | 天天摸天天操天天射 | 小辣椒福利视频导航 | 国产又粗又长又黄 | 欧美在线视频网 | 波多野结衣激情视频 | 丁香花高清在线 | 青青草国产在线播放 | 老熟妇高潮一区二区高清视频 | 91亚色视频在线观看 | 日韩啪啪片 | 99热这里只有精品99 | 99在线观看免费 | 午夜国产| 综合伊人久久 | 亚洲欧美中文日韩在线v日本 | 黄色一级片久久 | 香蕉视频三级 | 亚洲国产一区二区三区四区 | 果冻av在线 | 久久网国产 | 小日子的在线观看免费第8集 | 看国产一级片 | 少妇中出视频 | 中文字幕第31页 | 美女视频黄是免费 | 国产精品扒开腿做爽爽爽男男 | 国产高清视频在线免费观看 | 特黄aaaaaaaaa毛片免费视频 | 射久久 | 男人天堂2019 | 亚洲天堂精品一区 | 91理论片午午伦夜理片久久 | 超碰97免费 | 视频一区二区三区在线观看 | free性娇小hd第一次 | 成年人在线观看视频网站 | 天天爽夜夜爽一区二区三区 | 国产精品88久久久久久妇女 | 在线视频1卡二卡三卡 | 福利网站在线 |