UVALive 4225 Prime Bases
2016-08-01 10:06
246 查看
UVALive 4225 Prime Bases
题意:任意一个b进制的数,比如1234(b),可以写成:1234 = 4 + 3 * b + 2 * b * b + 1 * b * b * b。规定一种特殊的进制,任意的整数n都可以写成:n = a0 + a1 * p0 + a2 * p0 * p1……am * p0 * p1 *...*pm-1(a0,a1……am是系数,p0,p1……pm-1是从2开始的连续素数)。给定的n为32位整数,输出n的上式。
思路:模拟一般的进制,求最高位系数要除以最高位,所以先求出最高位,求出系数后再依次往低位求,递归输出。
题意:任意一个b进制的数,比如1234(b),可以写成:1234 = 4 + 3 * b + 2 * b * b + 1 * b * b * b。规定一种特殊的进制,任意的整数n都可以写成:n = a0 + a1 * p0 + a2 * p0 * p1……am * p0 * p1 *...*pm-1(a0,a1……am是系数,p0,p1……pm-1是从2开始的连续素数)。给定的n为32位整数,输出n的上式。
思路:模拟一般的进制,求最高位系数要除以最高位,所以先求出最高位,求出系数后再依次往低位求,递归输出。
/************************************************************************* File Name: H.cpp ID: obsolescence BLOG: http://blog.csdn.net/obsolescence LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月31日 星期日 15时54分49秒 ************************************************************************/ #include<bits/stdc++.h> #define Max(x,y) ((x)>(y)?(x):(y)) #define Min(x,y) ((x)<(y)?(x):(y)) #define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it) #define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x))) #define ll long long #define Mem0(x) memset(x,0,sizeof(x)) #define Mem1(x) memset(x,-1,sizeof(x)) #define MemX(x) memset(x,0x3f,sizeof(x)) #define pb push_back using namespace std; const int N=13; int p[]={2,3,5,7,11,13,17,19,23,29,31,37,41}; void dfs(int n,ll num,int i) { if (i<0) { if (n) printf("%d",n); return; } int ans=n/num,j; n%=num; if (n) dfs(n,num/p[i],i-1); if (ans) { if (n) printf(" + "); printf("%d",ans); for (j=0; j<=i; ++j) printf("*%d",p[j]); } } int main() { int i,n; while (~scanf("%d",&n)&&n) { printf("%d = ",n); ll num=1; for (i=0; i<N; ++i) { if (num>n) break; num*=p[i]; } dfs(n,num,i-1); puts(""); } }
相关文章推荐
- UVALive 4225 / HDU 2964 Prime Bases 贪心
- UVALive 4225 Prime Bases 贪心
- UVALive 4225 Prime Bases 贪心
- UVA355 UVALive5249 The Bases Are Loaded【进制】
- UVALive3399 UVA1210 POJ2739 Sum of Consecutive Prime Numbers【素数筛选+尺取法】
- UVA524 UVALive5270 HDU1016 ZOJ1457 Prime Ring Problem【DFS】
- Happy Happy Prime Prime UVALive - 7094
- UVALive 6912 Prime Switch 状压DP
- 【筛法求素数】【推导】【组合数】UVALive - 7642 - Prime Distance
- UVALive2247 Prime Digital Roots【水题】
- UVALive 6912 Prime Switch 状压DP,贪心
- UVALive 6912 Prime Switch 暴力枚举+贪心
- 【UVALive 7505】Hungry Game of Ants(DP)
- Rational Grading UVALive - 7636
- UVALive - 4329 Ping pong
- uvalive 5008 hdu 3717 double maze 四维bfs(好题)
- UVALive 5135 Mining Your Own Business(点双连通分量)
- UVALive 4167 Parity (字符串水)
- 经典线段树 UVALive 3938/UVA 1400
- Uvalive 6302 Star Travel