POJ 2798:二進制轉換十六進制

很郁悶,這道題一直WA,然而本地我測了好幾組數據都是通過的,上網找了網友陳宇龍加油加油加油的AC的代碼,http://blog.csdn.net/Since_natural_ran/article/details/51742149,發現沒有什么不同。。。很無語。。

#include<stdio.h>  
#include<string.h>  
#include<math.h> int main() { char input[10005]; int i,temp,length,Case; scanf("%d",&Case); while(Case--){ scanf("%s",input); length = strlen(input); temp = length%4; int sum = 0; if(temp) //巧妙地處理了余數位 { for(i = 0;i < temp; i++) sum += (input[i] - '0')*pow(2,temp - 1 - i); //注意函數 printf("%X",sum); } for(i = temp;i < length; i += 4) //注意 i 必須要賦值 printf("%X",(input[i] - '0')*8 + (input[i+1] - '0')*4 + (input[i+2] - '0')*2 + (input[i+3] - '0')); printf("\n"); } return 0; } 

#include <stdio.h>
#include <string.h>
#include <math.h>
char bin[10001]={0};
int main()
{
int n;
char hex16[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",&n);
while(n--){
scanf("%s",bin);
int l=strlen(bin);
for(int i=0;bin[i]!='\0';i++){
bin[i]-=0x30;
}
char hex[2510]={0};
int rem=l%4;
int i,j,tmp=0;
if(rem!=0){
for(i=0;i<rem;i++){
tmp+=bin[i]*pow(2,rem-i-1);
}
hex[0]=hex16[tmp];
}
else{
hex[0]=hex16[bin[0]*8+bin[1]*4+bin[2]*2+bin[3]*1];
i=4;
}

if(l>4){
for(j=1;bin[i+4]!='\0';i+=4,j++){
hex[j]=hex16[bin[i]*8+bin[i+1]*4+bin[i+2]*2+bin[i+3]*1];
}
hex[j]=hex16[bin[i]*8+bin[i+1]*4+bin[i+2]*2+bin[i+3]*1];hex[j+1]='\0';
}
printf("%s\n",hex);
}
return 0;
}

這是我的代碼。思路完全一樣,然而就是WA。。。

不過上面那位仁兄代碼寫得很不錯,學習了。

?

*************************************************************************

睡了一覺,醒來發現自己犯了一個愚蠢的錯誤:由于自己已經把輸入字符串去“ASCII”化了,這樣就不能用bin[i+4]!='\0';來判斷字符串結束了!因為0的ASCII碼就是‘\0’!之前測的用例對是因為沒有走到過這個條件!!!

思維不嚴謹啊~這回知道了,還是用字符串的長度判斷比較靠譜.........

?而且,對于字符串不要去“ASCII”化,而是像上面那位仁兄一樣,用

(input[i] - '0')這種形式比較好!

轉載于:https://www.cnblogs.com/cjf1699-dut/p/7306101.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282821.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Shashlik.EventBus】.NET 事件總線,分布式事務最終一致性簡介

分布式事務、CAP定理、事件總線&#xff0c;在當前微服務、分布式、集群大行其道的架構前提下&#xff0c;是不可逃避的幾個關鍵字&#xff0c;在此不會過多闡述相關的理論知識。Shashlik.EventBus就是一個基于.NET6的開源事件總線解決方案&#xff0c;同時也是分布式事務最終一…

5個超實用的Visual Studio插件

工欲善其事&#xff0c;必先利其器,整理的一些我必裝的5款Visual Studio插件&#xff0c;希望你們能get到。01 CodeMaidCodeMaid快速整理代碼文件&#xff0c;規范你的代碼&#xff0c;提高代碼閱讀體驗。代碼自動對齊&#xff0c;格式化代碼&#xff08;ps&#xff1a;不用再按…

BZOJ1509: [NOI2003]逃學的小孩(樹的直徑)

Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1126 Solved: 567[Submit][Status][Discuss]Description Input 第一行是兩個整數N&#xff08;3 ? N ? 200000&#xff09;和M&#xff0c;分別表示居住點總數和街道總數。以下M行&#xff0c;每行給出一條街道的信息。第i1行…

Blazor University (52)依賴注入 —— 擁有多個依賴項:正確的方式

原文鏈接&#xff1a;https://blazor-university.com/dependency-injection/component-scoped-dependencies/owning-multiple-dependencies-the-right-way/擁有多個依賴項&#xff1a;正確的方式在上一節[1]中&#xff0c;我們看到了將多個擁有的依賴項注入組件的錯誤方法。本節…

Gradle 1.12用戶指南翻譯——第五十四章. 構建原生二進制文件

其他章節的翻譯請參見&#xff1a;http://blog.csdn.net/column/details/gradle-translation.html翻譯項目請關注Github上的地址&#xff1a;https://github.com/msdx/gradledoc本文翻譯所在分支&#xff1a;https://github.com/msdx/gradledoc/tree/1.12。直接瀏覽雙語版的文檔…

android 調用c wcf服務,如何使用命名管道從c調用WCF方法?

更新&#xff1a;通過協議here,我無法弄清楚未知的信封記錄.我在網上找不到任何例子.原版的&#xff1a;我有以下WCF服務static void Main(string[] args){var inst new PlusFiver();using (ServiceHost host new ServiceHost(inst,new Uri[] { new Uri("net.pipe://loc…

VK Cup 2015 - Qualification Round 1 A. Reposts(樹)

傳送門 Description One day Polycarp published a funny picture in a social network making a poll about the color of his handle. Many of his friends started reposting Polycarps joke to their news feed. Some of them reposted the reposts and so on. These event…

Lombok@Builder和@NoArgsConstructor沖突

問題 今天在使用lombok簡化model類時。使用Builder建造者模式。報以下異常 解決辦法。 去掉NoArgsConstructor添加AllArgsConstructor源碼分析 下圖是編譯后的源碼 只使用Builder會自動創建全參構造器。而添加上NoArgsConstructor后就不會自動產生全參構造器

現在商業有種競爭叫“跨界打擊”

隨著互聯網的發展&#xff0c;“跨界打擊”的事情可謂是無處不在。行業跨界打擊會搶占某個行業的市場份額&#xff0c;甚至可能淘汰一個行業。跨界打擊者可能是某個行業的新進入者&#xff0c;也可能是現有競爭者&#xff0c;更可能是徹底的替代者或顛覆者。跨界打擊&#xff0…

架構之美閱讀筆記之一

寒假生活開始了&#xff0c;關于軟件架構這部分的學習&#xff0c;我選擇的是《架構之美》這本書。這本出版于2009年的書&#xff0c;由淺入深地講述了從架構的概述&#xff0c;到企業級應用架構&#xff0c;系統架構&#xff0c;最終用戶應用架構&#xff0c;再到語言與架構模…

ntop linux,Linux下開源監控軟件Ntop的性能提升方案

摘要&#xff1a;Ntop是一款Linux下常見的開源監控軟件&#xff0c;它可以監測的數據包括&#xff1a;網絡流量、使用協議、系統負載、端口情況、數據包發送時間等。正常情況下它工作的時候就像一部被動聲納&#xff0c;默默的接收看來自網絡的各種信息&#xff0c;通過對這些數…

Java異常處理教程

異常是在沒有定義正常執行路徑時在Java程序的執行期間可能出現的條件。Java通過將執行操作的代碼與處理錯誤的代碼分離來處理錯誤。 當發生異常時&#xff0c;Java會創建一個包含有關異常的所有信息的對象&#xff0c;并將其傳遞給相應的異常處理代碼。有關異常的信息包括異常的…

性能優化8--內存泄露

一.根源&#xff1a; 內存泄露簡單說就是已經沒有用的資源&#xff0c;但是由于被其他資源引用著無法被GC銷毀。 二.內存泄露常見場景 1.單例導致內存泄露 單例的靜態特性使得它的生命周期同應用的生命周期一樣長&#xff0c;如果一個對象已經沒有用處了&#xff0c;但是單例還…

那些年,登山徒步記錄,立貼

2018年1月-9月份暫無數據。&#xff08;慘無人道&#xff0c;已經喪失了自我。&#xff09; 10月份2017年2月份02月12日 25.00KM 牛木外線3月份暫無數據。 4月份1.04月09日 16.00KM 火鳳線 5月份1.05月06日 20.00KM 漁帽線&#xff08;第一機耕路&#xff09; 6月份1.06月11日 …

記一次 .NET 某打印服務 非托管內存泄漏

一&#xff1a;背景 1. 講故事前段時間有位朋友在微信上找到我&#xff0c;說他的程序出現了內存泄漏&#xff0c;能不能幫他看一下&#xff0c;這個問題還是比較經典的&#xff0c;加上好久沒上非托管方面的東西了&#xff0c;這篇就和大家分享一下&#xff0c;話不多說&#…

android靜態方法如何測試,android – 如何使用mock()和spy()測試靜態方法

通常情況下,如果你最終使用PowerMock,這是一個很好的跡象,表明你最有可能是錯誤的方式.如果不是直接引用畢加索,而是創建一個組件,它的職責是加載圖像,讓我們說類ImageLoader.這會給你什么&#xff1f;>關注點分離&#xff1a;如果明天你決定轉移到Glide,你不應該改變你使用…

mysql經典的8小時問題-wait_timeout

2019獨角獸企業重金招聘Python工程師標準>>> 前段時間 現網突然頻繁報出 連接不上數據庫&#xff0c;偶滴的妖孽&#xff0c;其他地方都是用mysql&#xff0c;也沒遇到這個問題呀。 java.io.EOFExceptionat at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913…

Chrome DevTools — Network

記錄網絡請求 默認情況下&#xff0c;只要DevTools在開啟狀態&#xff0c;DevTools會記錄所有的網絡請求&#xff0c;當然&#xff0c;記錄都是在Network面板展示的。 停止記錄網絡請求 點擊Stop recording network log紅色圖標&#xff0c;當它變為灰色時&#xff0c;表示DevT…

Blazor University 中文版網站已上線

在學習 Blazor 的過程中&#xff0c;找到了一個網站 Blazor University&#xff08;https://blazor-university.com&#xff09;。發現網站內容非常詳實&#xff0c;正像首頁所說的&#xff1a;通過瀏覽本網站中的信息&#xff0c;我打算帶您從完全的新手到Blazor的所有方面的專…

android:paddingtop 百分比,相對層中的百分比寬度

相對層中的百分比寬度我正在為登錄進行表單布局。Activity在我的Android應用程序中。下面的圖片是我希望它看起來的樣子&#xff1a;我能夠通過以下方式實現這個布局XML..問題是&#xff0c;這有點麻煩。我不得不對主機EditText的寬度進行硬編碼。具體而言&#xff0c;我必須具…