论坛首页 编程语言技术论坛

月薪16000的一道笔试题

浏览 52827 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (16)
作者 正文
   发表时间:2011-10-26  
其实这个题,连比较运算符都使不能使用的,出这种题,还真不知道意图是啥
0 请登录后投票
   发表时间:2011-10-27  
这道题就是在不用判断条件的情况下,判断x是否不小于1,然后输出x-1的值
0 请登录后投票
   发表时间:2011-10-27  
thanq 写道
function f( v ){
  var t = 0 ,t1=-1;
  for(;t<=v;){
    if(t==v){
      return t1
    }else{
      t++ ;t1++;
    }
  }
}

+1
0 请登录后投票
   发表时间:2011-10-27   最后修改:2011-10-27
方法1:只有 for, 赋值, 和 ++, 的解决方案(题目说x不能等于0的):

static int fun(unsigned int x) {
	    unsigned int i = x;
	    unsigned int j = 0;
	    
		//C语言, 不是0 ,就是true, 所以一直加就会是0了, 所以就退出了
	    for (;i;) {
	        i++;
	        j++;
	    }
	    
		//因为要返回x-1
	    j++; 
	    
	    unsigned int m = 0;
		
		//和上面一样的道理
	    for (;j;) {
	        j++;
	        m++;
	    }

	    
	    return m;
}


(我x,写完后...发现一楼已经有答案了).

方法2: 赋值和for都不需要.... 就是这样 (大部分语言都有方法体长度的限制, 那就多分为几个方法就可以了):

int fun(unsigned int x) {
    x++;
    x++;
    ... //和上面的 x++, 共Integer.MAX_VALUE - 1行(无符号的哦),

   return x;
}

}
0 请登录后投票
   发表时间:2011-10-27   最后修改:2011-10-27
我只会java  。。。
public class test {
   public static void main(String []agrs){
   int j=0,x=20;
   for(int i=0;i<x;i++){
   j=i;
  
   }
   System.out.print(j);
  
   }
}
x=20,输出19....真的 符合题意。。
小于号 算不? java 怎么 搞溢出?
0 请登录后投票
   发表时间:2011-10-27  
请仅使用变量声明,赋值,++,及从0开始的for循环实现一个函数f(x),在x为不小于1的整数类型的情况下,使其返回值等于x-1.

这题目我感觉挺简单,看了前面大家的回复,我觉得你们把问题搞复杂了。这题目没有说明用什么语言,我想主要就是说看你的思路是否正确,语法是无关紧要的。

下面是我的理解:

首先,题目里有个没定义清晰的地方,就是“从0开始的for循环”,这个是循环X次,还是X+1次;不过对结果没什么影响,我们先假定是循环X次

我的思路是,既然要返回X-1,那么在X次循环里,我只需要返回倒数第2次循环的值就ok了。

下面的伪代码既没有用java语法,也没用c++,大家能看懂就行
引用
int f(int x) {
int m=0,n=0
for i=0 to x
  m=n
  n++
next

return m
}
第1次循环,m=0,n=1,也就是说m始终比循环次数小1,正是我们要的结果。

同上,如果题目的意思是循环X+1次,那么只需要多定义一个变量,返回倒数第3次的值就行了。
引用
int f(int x) {
int m=0,n=0,p=0
for i=0 to x
  m=n
  n=p
  p++
next

return m
}
以上思路只用了变量、赋值、++、从0开始的for
呵呵,欢迎继续探讨
0 请登录后投票
   发表时间:2011-10-27  
只有个零头。
0 请登录后投票
   发表时间:2011-10-28  
f(x)
{
    int result = x;
    for(int i=0;++result>++i;)
    {
        return x-1;
    }
}
0 请登录后投票
   发表时间:2011-10-28   最后修改:2011-10-28
public int f(int x){
	int[] a = new int[x];
	int count = -1;
	for(int b:a){
		count++;
	}
	return count;
}


for循环不见得非要用boolean类型判断
0 请登录后投票
   发表时间:2011-10-28  
my_corner 写道
public int f(int x){
	int[] a = new int[x-1];
	int count = 0;
	for(int b:a){
		count++;
	}
	return count;
}


for循环不见得非要用boolean类型判断

高手
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics