输入多行正整数,输入他们拆分后的形式,比如 1234拆分为1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1,1034拆分为 1 * 1000 + 3 * 10 + 4 * 1
多行正整数
对应的拆分结果,乘号使用 * 代替,数字和符号之间都有一个空格间隔
复制
1234 1034
1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1 1 * 1000 + 3 * 10 + 4 * 1
这道题难在哪里呢?难就难在我不会写。
我厉害又厉害在哪里呢?厉害就厉害在我还是写出来了
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
char str[10];
int i=0;
while(scanf("%s",str)!=EOF){
printf("%c * %d ",str[0],(int)pow(10,strlen(str)-1));
for(i=1;i<strlen(str);i++){
if(str[i]=='0')
continue;
else{
if(i!=strlen(str)){
printf("+ %c * %d ",str[i],(int)pow(10,strlen(str)-i-1));
}
}
}
putchar('\n');
}
}
顺便上一下我同学的代码,我觉得写的特别好,挺简单的
这是它的博客 http://http://my.csdn.net/shieroldman
#include<stdio.h> int main(){ char a[15]; int n=1; while((scanf("%s",a)!=EOF)){ n=1; for(int i=0;i<strlen(a)-1;i++){ n*=10; } putchar(a[0]); printf(" * %d",n); n/=10; for(int i=1;a[i]!='\0';i++){ if(a[i]=='0'){ n/=10; continue; } printf(" + "); putchar(a[i]); printf(" * %d",n); n/=10; } putchar('\n'); } return 0; }