P2084 进制转换
原題鏈接 https://www.luogu.org/problemnew/show/P2084
這個題的思路就是先將輸入的數字存到字符數組里,然后求出這一串數字中的非0元素的個數total,并記錄最后一位非0元素的位置。輸出時,先輸出total-1個,最后再補上第total個,這樣加號的問題就解決了。(有比我方法更簡單的大佬勿噴本蒟蒻)廢話少說,上代碼!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
 int n,len,total=0,p=0,h; ? ? ? ? ? ?//len求輸入的數字的長度,total表示數字串中的非0元素,h用來記錄最后一位非0元素的位置
 char a[1001]; ? ? ?
 cin>>n>>a; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//注意a后面不加任何東西
 len=strlen(a); ? ? ? ? ? ? ? ? ? ? ? ? ?//求數組a的長度len
 for(int i=0;i<len;i++)
 if(a[i]!='0') total++; ? ? ? ? ? ? ? ? ? //計算非0元素的個數
 for(int i=0;i<len;i++)?
 {if(a[i]!='0') 
{p++;if(p==total) h=i;}} ? ? ? ? ? ?//每找到一位非0元素p++,當p==total時,說明是最后一位非0元素,用h記錄當前的位置i ? ?
 for(int i=0;i<=len-1;i++) ? ? ? ? ? //輸出
 {if(a[i]!='0'&&i!=h) {cout<<a[i]<<"*"<<n<<"^"<<len-1-i<<"+";}} ? ? ? ? //i!=0是為了讓它只輸出a【h】前面的數,只是單純的處理加號的問題.....
 cout<<a[h]<<"*"<<n<<"^"<<len-1-h; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //輸出最后一位非0元素a【h】
 return 0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //完美結束!!!
}
轉載于:https://www.cnblogs.com/xcg123/p/10461949.html
總結
以上是生活随笔為你收集整理的P2084 进制转换的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Linux基础第五课——用户管理
 - 下一篇: 李广射虎翻译及原文