A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李行周 于 2012-12-21 14:30 编辑

例如给一个小于10的N次方的数怎么求出这个数的长度?如果是小数又该怎么求?只使用循环,四则运算,和判断,不能调用其他函数!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
做不到,额
回复 使用道具 举报
如果是整数
每次/10判断是否大于0,是的话计数器+1.
while((n=n/10)>0){legth++}
最后+1或者计数器初始值是1,数字默认是有长度的。
如果是小数,我感觉做不出来。java中的小数是有精度丢失的,计算的结果不能保证每次都和预期一样。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
罗会涛 发表于 2012-12-21 11:45
如果是整数
每次/10判断是否大于0,是的话计数器+1.
while((n=n/10)>0){legth++}

应该跟1比吧 ,我想了个这样的
  1. int coun = 0;
  2.             int chushu = 1000000000;
  3.             Console.WriteLine("请输入一个数字为您算出它的长度");
  4.             int n = Convert.ToInt32(Console.ReadLine());
  5.            
  6.             for (int i = 9; i>=0; i--)
  7.             {
  8.                 if ((n / chushu) < 1)
  9.                 {
  10.                     chushu /= 10;

  11.                 }
  12.                 else
  13.                 {
  14.                   
  15.                     coun =i+1;
  16.                     break;
  17.                 }

  18.             }
  19.         
  20.             Console.WriteLine("这个数字长度是{0}",coun.ToString());
  21.             Console.ReadLine();
复制代码
回复 使用道具 举报
李行周 发表于 2012-12-21 12:49
应该跟1比吧 ,我想了个这样的

你都把值限定为int,如果人家给的是0.123,到你这里不就是0了,哪里还有什么小数
回复 使用道具 举报
李行周 发表于 2012-12-21 12:49
应该跟1比吧 ,我想了个这样的

再说了浮点数的是以IEEE754格式格式存储的,弄成字符串还能转回来吗。
你既然都用了字符串,干嘛不直接用字符串的方法,直接length()多方便。
回复 使用道具 举报
循环对10取余,如果余数大于0,则保存长度的变量+1.最后得到保存长度的变量.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马