poj 1001(注意输出数据的格式和输出的格式,如空格,回车等)

复制代码
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int a[200],na,xiaoshu;
void multiply(int b){
    int i;
    for(i=0;i<na;i++){
        a[i] *= b;
    }
    for(i=0;i<na;i++){
        if(a[i]>=10){
            a[i+1] += a[i]/10;
            a[i] %= 10; 
        }
    }
    while(a[i]>0){
        if(a[i]>=10){
            a[i+1] += a[i]/10;
            a[i] %= 10;
        }
        i++; 
    }
    na = i;
}
void R(int n,int b){
    int i;
    for(i=1;i<n;i++){
        multiply(b);
    }
}
void display(int n){
    bool flag = true;
    int i,j,xiaoshu_r = xiaoshu*n,tmp = na-xiaoshu_r;
    for(i=0;i<xiaoshu_r;i++)
        if(a[i]!=0)flag = false;
    i = 0;
    j = 0;
    while(i<na&&a[i]==0){
        j++;
        i++;
    }
    if(a[na-1]!=0)
        for(i=0;i<tmp;i++)
            printf("%d",a[na-1-i]);
    if(flag){
        printf("\n");
        return;
    }
    printf(".");
    for(i=tmp;i<na-j;i++)
        printf("%d",a[na-1-i]);
    printf("\n");
}
int main(){
    char r[7];
    int n;
    while(scanf("%s%d",r,&n)==2){
        memset(a,0,sizeof(a));
        int i,j = 0,len = strlen(r);
        for(i=len-1;i>=0;i--){
            if(r[i]=='.'){
                xiaoshu = 5-i;
            }
            else{
                a[j++] = r[i]-'0';
            }
        }
        na = j;
        int b = 0;
        for(i=j-1;i>=0;i--){
            b *= 10;
            b += a[i];
        }
        R(n,b);
        display(n);
    }
    return 0;
}
复制代码

 

posted @   智人心  阅读(33)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示