1. 程式人生 > 其它 >poj 1001(分類討論)

poj 1001(分類討論)

#include<iostream>
#include<cstring>
using namespace std;
int data[150],len;
void multiply(int tmp){
    int i,j;
    for(i=0;i<len;i++){
        data[i] *= tmp;
    }
    for(i=0;i<len;i++){
        if(data[i]>=10){
            j = data[i]/10;
            data[i+1] += j;
            data[i] 
%= 10; } } while(data[i]>=10){ data[i+1] = data[i]/10; data[i] %= 10; i++; } len = i+1; } void expo(int tmp,int n){ int i; for(i=0;i<n;i++){ multiply(tmp); } } int main(){ int i,j,r,icon,tmp; char a[10]; while(scanf("%s%d
",a,&r)==2){ tmp = 0; for(i=0;i<strlen(a);i++){ if(a[i]=='.'){ icon = (5-i)*r; } else{ tmp += a[i]-'0'; tmp *= 10; } } tmp /= 10; memset(data,0,sizeof(data)); data[
0] = 1; len = 1; expo(tmp,r); j = 0; for(i=0;i<icon;i++){ if(data[i]==0){ j++; } else{ break; } } if(!(len-1==icon&&data[len-1]==0)){ for(i=len-1;i>icon-1;i--){ printf("%d",data[i]); } } if(j!=icon){ printf("."); } for(i=icon-1;i>j-1;i--){ printf("%d",data[i]); } printf("\n"); } return 0; }