Problem A: 整数的组成(I)
Time Limit: 1 Sec
Memory Limit:128 MB
Submit: 568
Solved:120
Description
我们知道,对于一个K进制的数,可以按照加权展开式来计算其对应的十进制数值。现在从键盘上读取若干个用空格隔开的一位十进制数,编程输出对应的十进制数值。
Input
输入是一系列用1个空格隔开的若干个数字0~9,并以-1表示输入结束。即输入格式为:
a1 a2 a3 a4 ... -1
其中a1,a2等是0~9中的一个数字,两者之间用1个空格隔开。
当输入为-1时,表示输入结束。
Output
输入的所有数据组成的十进制数。即:
a1a2a3...
假定所生成的整数在unsigned int类型范围内。
Sample Input
1 2 3 -1
Sample Output
123
HINT
Append Code
这道题其实没啥可说的,(*=10的那种方法),但是用字符串干的方法坑了我好久,说一下,首先前面是要赋值成0的,然后再就是这个时候\0需要判断。(比较烦了)
#include<stdio.h>
#include<string.h>
int main()
{
int flag=0;
char s[200];
s[0]='0';
int i=0,a;
while(scanf("%d",&a)&&a!=-1)
{
if(flag==0&&a==0);
else
{
if(a!=0)flag=1;
s[i++]=a+48;
}
}
if(flag!=0)
s[i]='\0';
printf("%s\n",s);
return 0;
return 0;
}
/**************************************************************
Problem: 2128
User: 201701060928
Language: C
Result: Accepted
Time:0 ms
Memory:748 kb
****************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
//freopen("in.txt","r",stdin);
unsigned long long int i=0;
int a;
while(scanf("%d",&a)&&a!=-1)
{
i*=10;
i+=a;
}
printf("%llu\n",i);
return 0;
}
/**************************************************************
Problem: 2128
User: 201701060928
Language: C
Result: Accepted
Time:0 ms
Memory:748 kb
****************************************************************/
字符串办法干了24行......下面这个就16行......