P2084 进制转换
题目背景
无
题目描述
今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 :
1*2^4+0*2^3+1*2^2+0*2^1+1*2^0,
那么请你编程实现,将一个M进制的数N转换成十进制表示的式子。
注意:当系数为0时,该单项式要省略。
输入输出格式
输入格式:
两个数,M和N,中间用空格隔开。
输出格式:
共一行,一个十进制表示的式子。
输入输出样例
输入样例#1:
2 10101
输出样例#1:
1*2^4+1*2^2+1*2^0
说明
对于100%的数据,1<M<10,N的位数不超过1000。
#include<iostream> #include<cstdio> #include<string.h> #include<algorithm> #include<math.h> using namespace std; int n,ans; int a[3000009],f[3000009]; int b[2000001],cntb,c[2000001],cntc; long long tot; int main() { scanf("%d",&n); ans=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]),a[i+n]=a[i],f[i]=f[i-1]+a[i]; if(a[i]<0) b[++cntb]=i,b[++cntb]=i+n; else if(a[i]>0) c[++cntc]=i; } for(int i=n;i<=n+n;i++) f[i]=f[n]+f[i-n]; int u,t=1; for(int i=1;i<=cntc;i++) { u=c[i];t=1; for(int j=1;j<=cntb;j++) if(f[b[j]]-f[u-1]<0 && b[j]>=u&&b[j]<=u+n){t=0;break;} if(t) ans++; } cout<<ans; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App