1001
来源:互联网 发布:多益网络offer 编辑:程序博客网 时间:2024/03/28 20:08
I will post my answer to poj.org, though they are not best
Exponentiation
http://poj.org/problem?id=1001
#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ int n = 0; char input[100] = {0}; while (scanf("%s%d", input, &n) == 2) { if (n == 0) { printf("1\n"); continue; } char *p = input; char *ch = NULL; int g_len = 0; while (*p) { if (*p == '.') ch = p; p++; g_len++; } int n_int = (ch) ? ch - input : g_len; n_int *=n; if (ch) { p = ch + 1; while (*p) { *(p -1) = *p; p++; } *(p - 1) = 0; g_len --; } char *ret1 = NULL; char *ret2 = NULL; int max_len = 0; max_len = g_len * n; ret1 = malloc(sizeof(char) * max_len); ret2 = malloc(sizeof(char) * max_len); int i = 0; for (i = 0; i < max_len; i++) ret1[i] = 0; p = input; ch = ret1; while(*p) { *p = *p - '0'; *(ch++) = *p; p++; } int curlen = g_len; for (i = 1; i < n; i++) { int j = 0; for (j = 0; j < curlen + g_len; j++) ret2[j] = 0; int start = g_len; for (j = g_len - 1; j >= 0; j--) { int k = 0; for (k = 0; k < input[j]; k++) { int q = 0; for (q = start + curlen - 1; q >= start; q--) { *(ret2 + q) += *(ret1 + q - start); if (*(ret2 + q) >= 10) { *(ret2 + q) -= 10; *(ret2 + q - 1) += 1; } } } start--; } for (j = 0; j < curlen + g_len; j++) ret1[j] = ret2[j]; curlen += g_len; } i = 0; int end = curlen - 1; while (ret1[i] == 0 && i < n_int) i++; while (i < n_int) printf("%d", ret1[i++]); while (ret1[end] == 0 && end >= n_int) end--; if (end >= n_int) printf("%c", '.'); for (i = n_int; i <= end; i++) { printf("%d", ret1[i]); } printf("\n"); free(ret1); free(ret2); } return 0;}
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- CV代码合集(Computer Vision Resources)
- 给Luncher添加自定义壁纸(修改Luncher界面和在程序中修改壁纸)
- 算法排序-交换排序(冒泡排序,快速排序)
- fstream的使用方法介绍
- Zookeeper中的FastLeaderElection算法
- 1001
- 第四章:Makefile的规则
- JS时间选择器
- Android中级教程之(二)----->Android SDK中tools详解
- Runtime.exec()的使用
- 人人都玩开心网:Ext JS+Android+SSH整合开发Web与移动SNS
- 教师节应用推荐:献给人类灵魂的工程师
- 排序算法-归并排序
- 从程序员到技术总监,分享10年开发经验