1.試題 基礎練習 十進位制轉十六進製制
問題描述十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推,十進位制的30在十六進製制中是1e給出乙個非負整數,將它表示成十六進製制的形式。
輸入格式 輸入包含乙個非負整數a,表示要轉換的數。0<=a<=2147483647問題分析:
大家都知道,十進位制轉換為其他進製的方法是"除基取餘,逆序排列"
除法運算和求餘運算都很簡單,那麼怎樣取輸出十六進製制數呢?
我想到兩種方法 1.利用asc2碼 2.利用陣列 例如
char basechar [16]
=;
**:
#include
intmain()
;int ans[10]
=, number=
0, n=0;
scanf
("%d"
,&number);do
while
(number)
;while
(n)return0;
}
2.試題 基礎練習 十六進製制轉十進位制
問題描述問題分析:從鍵盤輸入乙個不超過8位的正的十六進製制數字串,將它轉換為正的十進位制數後輸出。
注:十六進製制數中的10~15分別用大寫的英文本母a、b、c、d、e、f表示。
這題就沒啥好說的,按權展開就好了,注意8位十六進製制數轉十進位制後會比較大
所以用 long long.
**:
#include
#include
#include
intmain()
printf
("%lld"
,s);
}
3.試題 基礎練習 十六進製制轉八進位制
問題描述給定n個十六進製制正整數,輸出它們對應的八進位制數。
輸入格式 輸入的第一行為乙個正整數n (1<=n<=10)。問題分析:接下來n行,每行乙個由0 ~ 9、大寫字母a~f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。
這一題,有點麻煩,思路比較明了,方法的話,先轉為十進位制,再轉為八進位制可以
先轉為二進位制再轉為八進位制也可以,.但數非常大,感覺十進位制不太可以.還害怕超時.借鑑了一下朋友的**.
**:
#include
#include
void
fun_two
(char a,
char c)
}int
fun_eight
(char a,
char b,
char c)
void
fun_main()
,c[200000
],d[3]
=;flag=0;
scanf
("%s"
,a);
lena=
strlen
(a);
for(j=
0;j) lenb=
strlen
(b);
k1=lenb/3;
k2=lenb%3;
for(j=
0;j(k2!=0)
y=fun_eight
(d[0
],d[1]
,d[2])
;if(y!=0)
}strcpy
(b,"\0");
for(j=k1-
1;j>=
0;j--
)printf
("\n");
}int
main()
,c[200000
],d[3]
=;scanf
("%d"
,&n)
;for
(i=0
;i)return0;
}
結果:
他一直刷不出來,我在別的**上測試成功了,不管了,明天再看
當然,我知道有"簡單方法":
比如第一題可以這麼做
#include
intmain()
但總要整點好 藍橋杯訓練day3
問題 1102 明明的隨機數 時間限制 1sec 記憶體限制 128mb 提交 2182 解決 935 題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對...
藍橋杯 計數問題 day3
題目 題目描述 試計算在區間 1 到 n 的所有整數中,數字 x 0 x 9 共出現了多少次?例如,在 1 到 11 中,即在 1 2 3 4 5 6 7 8 9 10 11 中,數字 1 出現了 4 次。示例輸入描述 輸入共 1 行,包含 2 個整數 n x,之間用乙個空格隔開。其中,1 n 10...
藍橋杯練習day5
1.矩陣乘法 題目描述 給定乙個n階矩陣a,輸出a的m次冪 m是非負整數 例如 a 1 23 4 a的2次冪 7 10 15 22 輸入第一行是乙個正整數n m 1 n 30,0 m 5 表示矩陣a的階數和要求的冪數 接下來n行,每行n個絕對值不超過10的非負整數,描述矩陣a的值 解題分析 是一道數...