oj随笔

感觉自己绝对是一个弟弟,啥都看不明白。

10^50怎么可能用整形定义,字符串也是王道,介绍一种char转int的方法   sum+=table[i]-'0'

哈哈哈哈哈,我也看不明白,所以从百度上白嫖了一个说法:

应该是把字符型数据转换为整型,在ACSII码表中,字符‘0’的十进制值是48,假设有一个字符为‘0’,那么计算机识别出来的十进制值是48,而不是0。所以可以通过问题上的公式可以把字符型的0转化为整型的0。同理,可以把1到9的字符转换成整型的1到9,看一下ASCII码表就懂了,不难的。通俗来讲就是一个数据类型的转换,这种操作在单片机上的数据转换用得会比较多,但一般是反过来用,把十进制的整型数字转换成字符型数字,然后在一些显示设备上打印出来......

总结一下,就是看ACSII码,其他的都是废话,附带一个样例

整数分类

 
 

Description

按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说242+4=6,则24的类别数是6393+9=121+2=3,则39的类别数是3

输入

       每行输入一个非负整数nn10500n0时结束。

输出

       每行输出对应整数的分类数。

#include<stdio.h>
int main()
{
char table[510];
int i,sum;
while(scanf("%s",table)!=-1)
{
if(table[0]=='0') break;
else
{
sum=0;
for(i=0;table[i]!='\0';i++)
{
sum+=table[i]-'0';//反正这一句很关键,要不然输出的是一个意想不到的数.....
}
while(sum>9)
{
sum=sum%10+sum/10;
}
printf("%d\n",sum);
}
}
return 0;
}

猜你喜欢

转载自www.cnblogs.com/Torebtr/p/11726978.html