📄 1001.cpp
字号:
#include <stdio.h>
#include <string.h>
int n,dotaddr,dotnum;
char r[7];
char res[160],tres[160];
void multiple(char *num1,char *num2,char *res){
char t2[160];
int len1,len2;
int tres,add,co;
int offset;
int lt;
offset = 0;
for(len2=0;len2<strlen(num2);len2++){
add = 0;
co = 0;
memset(t2,'\0',sizeof(t2));
for(len1=0;len1<strlen(num1);len1++){
tres = (num2[len2]-'0')*(num1[len1]-'0')+add;
add = tres/10;
tres = tres%10;
t2[co++] = tres+'0';
}
if(add != 0)
t2[co] = add+'0';
add = 0;
for(lt=0;lt<strlen(t2);lt++){
if(res[lt+offset] != '\0'){
tres = res[lt+offset]-'0' + t2[lt]-'0'+add;
add = tres/10;
res[lt+offset] = tres%10+'0';
}
else{
tres = t2[lt]-'0'+add;
add = tres/10;
res[lt+offset] = tres%10+'0';
}
}
if(add != 0){
res[lt+offset] = add+'0';
}
offset++;
}
//printf("%s\n",res);
}
void output(char *s){
int lt;
int tzp;
int intnum;
for(lt=0;lt<strlen(s);lt++)
if(s[lt] != '0')
break;
tzp = lt;
if(dotnum>0)
dotnum = dotnum*n;
else
dotnum = 0;
intnum = strlen(s)-dotnum;
if(dotnum==0){
for(lt=0;lt<=intnum;lt++)
printf("%c",s[strlen(s)-1-lt]);
printf("\n");
}
else{
for(lt=strlen(s)-1;lt>=strlen(s)-intnum;lt--)
if(s[lt]>'0')
break;
for(lt=lt;lt>=strlen(s)-intnum;lt--)
printf("%c",s[lt]);
printf(".");
for(lt=lt;lt>=tzp;lt--)
printf("%c",s[lt]);
printf("\n");
}
}
int main(int argv,char args[]){
char tr[7];
int lt;
int co;
while(scanf("%s %d",tr,&n)==2){
co = 0;
dotaddr = 6;
memset(r,'\0',sizeof(r));
for(lt=0;lt<strlen(tr);lt++){
if(tr[lt] != '.')
r[co++] = tr[lt];
else
dotaddr = lt;
}
for(lt=strlen(tr)-1;lt>=0;lt--){
if(tr[lt]!='0')
break;
}
dotnum = lt-dotaddr;
for(lt=strlen(r)-1;lt>=dotaddr;lt--)
if(r[lt] != '0')
break;
for(co=strlen(r)-1;co>lt;co--)
r[co]='\0';
strcpy(tr,r);
co = 0;
for(lt=strlen(tr)-1;lt>=0;lt--){
r[co++] = tr[lt];
}
if(n==0)
printf("1\n");
else{
strcpy(tres,r);
for(lt=0;lt<n-1;lt++){
memset(res,'\0',sizeof(res));
multiple(tres,r,res);
strcpy(tres,res);
}
}
output(tres);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -