查看完整版本: 去面试测试人员,公司给了我两道程序算法题..

hero_yw 2007-3-29 13:37

去面试测试人员,公司给了我两道程序算法题..

去面试系统测试人员,公司给了我两道程序算法题,好久没写程序,都想不起来了,我要晕了。
1,写程序输出这段字符
********1
*******121
******12321
*****1234321
****123454321
***12345654321
**1234567654321
*123456787654321
12345678987654321

2,下面公式的每个字母代表一个0-9的数字,编程计算出每个字母是几?
fifteen
    ten
+  ten
-------
sixteen

[[i] 本帖最后由 hero_yw 于 2007-3-29 13:49 编辑 [/i]]

Eagle1983 2007-3-29 13:53

什么公司阿?题目这么BT。考开发的把

shanxi 2007-3-29 14:10

0~9  十个数字
f
i
t
e
n
s
x
共7个

按位加,考虑进位
按照题目对齐形式无解:

3*n末位仍然是n,得出n=5或者0
=>如果n=5,有进位那么3*e+1末位仍然是e,e不存在
=>所以n=0,3*e末位仍然是e,得出e=5
        =>如果e=5,有进位那么e+2*t+1仍然是e,也就是6+2*t进位后仍是5

fift550
    t50
    t50
---------
sixt550

[[i] 本帖最后由 shanxi 于 2007-6-20 14:49 编辑 [/i]]

hero_yw 2007-3-29 16:16

唉,发现单单做业务层面上的测试真的没有什么前途。

gs6431 2007-3-29 16:35

main ()
{
        int i,j,k,t;
        for(i=1;i<10;i++)
        {
                for(j=10-i;j>0;j--)
                        printf("*");
        for(k=1;k<=i;k++)
                    printf("%d",k);
                for(t=i-1;t>0;t--)
                    printf("%d",t);
                printf("\n");
        }

}
第一个题目的答案,可以在VC环境下运行输出

gs6431 2007-3-29 16:54

[quote]原帖由 [i]shanxi[/i] 于 2007-3-29 14:10 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=469573&ptid=71428][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
0~9  十个数字
f
i
t
e
n
s
x
共7个

按位加,考虑进位 [/quote]


能不能详细说说啊 ?最好把答案贴出来,呵呵
我没看明白那个公式

boliping 2007-3-29 17:21

回复 #5 gs6431 的帖子

强人

stardust 2007-3-29 17:41

真的不错, 时常可以开动脑筋锻炼一下

cleverman 2007-3-30 10:14

感觉第二道题不太对劲。
fifteen+ten+ten=sixteen吗?

xxl 2007-3-30 13:04

for(int i = 1; i <= 9; i++)
          {
                  for(int j = 1; j <= 9 - i; j++)
                  {
                          System.out.print("*");
                  }

                  for(int m = 1; m <= i; m++)
                  {
                          System.out.print(m);
                  }

                  for(int n = i - 1; n >= 1; n--)
                  {
                          System.out.print(n);
                  }

                  System.out.println();
          }

第2题看不懂什么意思

taoyi921 2007-3-30 14:00

第2道题好像无解????

kolecat 2007-3-30 14:13

fifteen
    ten
+  ten
-------
sixteen

题目是不是有问题?  假设三个百位数上的字母相加(e+t+t),就算都是最大数9,也不过是27,进千为数2,这两位数进入千位后,居然保持t无变化?而万位数的 f 变成了 x ?

smartman 2007-3-30 14:50

第二个是错的,要不是就为全零或者后四位为零  前面只要相等就可以。

gothkia 2007-3-30 15:19

第二题好像错了

pilouzi 2007-3-30 15:37

回复 #5 gs6431 的帖子

太有材了
佩服佩服
刚才我在编译器上运行了
完全正确!!!!
你是做测试的吗?

gothkia 2007-3-30 15:52

[quote]原帖由 [i]pilouzi[/i] 于 2007-3-30 15:37 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=471061&ptid=71428][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
太有材了
佩服佩服
刚才我在编译器上运行了
完全正确!!!!
你是做测试的吗? [/quote]
好像都了一个*吧。j=10-i,第一排9个*。基础的嵌套循环测试也要会点编程的~

kevin_park315 2007-3-30 17:00

强!!!

lizzi 2007-3-30 17:40

第二个有点难度,应该用递归算法,已经不记得了

naonao 2007-3-30 18:10

public class test01
{
        public static void main(String[] args)
        {
                int m=9;
                for(int i=1;i<=m;i++)
                {               
                        int n=m-i;
                        if (n>0){
                                for        (int j=0;j<n;j++){
                                        System.out.print("*");       
                                }
                        }
                        int k=0;
                        for(k=k+1;k<=i;k++)
                        {
                                System.out.print(k);       
                        }
                        for(k=k-1;k>1;k--)
                        {
                                System.out.print(k-1);       
                        }
                        System.out.print("\n");
                }               

        }
}

Eagle1983 2007-3-30 18:11

刚刚做了一下第一题 ,还真不简单。呵呵 要的到正确的结果 还真要 Debug,Debug,Debug......
>3层嵌套我头就晕了 哈哈 特别是层之间的变量还有联系,那就更晕了 看来得回去恶补一下C了。感觉写这些小程序蛮好玩的。

godmap 2007-3-30 23:10

//第2题的意思还是没明白~~楼主能在解释一下吗?
/////////////////////////////////////////////////////////////////////////////////////
//1,写程序输出这段字符
//********1
//*******121
//******12321
//*****1234321
//****123454321
//***12345654321
//**1234567654321
//*123456787654321
//12345678987654321
/////////////////////////////////////////////////////////////////////////////////////
class Question1 {
        private int i = 9;
        private int z = i;
        private char s = '*';
       
        public void displayStar(char c, int j) {
                for(int k=0; k<j-1; k++)
                        System.out.print(c);
                       
        }
       
        public void displayNum(int j) {
                for(int k=0; k<j; k++) {
                        System.out.print(k+1);
                }
                for(int x=1; x<j; j--) {
                        System.out.print(j-1);
                }
                System.out.println();
        }
       
        public void displayStarAndNum() {
                for(int j=0; j<i; j++,z--) {
                        this.displayStar(s, z);
                        this.displayNum(j+1);
                }
        }
}

//2,下面公式的每个字母代表一个0-9的数字,编程计算出每个字母是几?
//////////////////////////////////////////////////////////////////
//fifteen
//    ten
//+  ten
//-------
//sixteen
//////////////////////////////////////////////////////////////////
class Question2 {
        private int[] n1;
        private int[] n2;
        private int[] n3;
        private int[] sum;
       
        public void getSum() {
  }
}



public class SolveQuestions {

        public static void main(String[] args) {
       
        new Question1().displayStarAndNum();
        new Question2().getSum();
       
        }
}

[[i] 本帖最后由 godmap 于 2007-3-30 23:13 编辑 [/i]]

lqp 2007-3-31 13:12

我刚出来,经历两家公司,但这两家公司都不需要懂得代码的,都是功能测试。我很想知道在哪些行业或者哪一类公司会要求测试人员懂代码呢?我们公司的产品都不算是小产品的,而且测试组规模也不算小,但都不用懂代码的测试人员都一样可以工作。懂不懂代码真的和测试有很大相关吗?

wuwb379 2007-3-31 16:40

sdlkfj1

meipaul 2007-3-31 21:58

sdlkfj8

coldfire 2007-3-31 22:40

public class Test {

        public static void cal() {
                for (int n = 0; n <= 9; n++) {
                        int nY = 3 * n % 10;  //求余
                        if (n == nY) {
                                for (int e = 0; e <= 9; e++) {
                                        int eb = ((n * 3) / 10 + e * 3) % 10;
                                        int jb = ((n * 3) / 10 + e * 3) / 10;
                                        if (e == eb) {
                                                for (int t = 0; t <= 9; t++) {
                                                        int tb = (jb + e + 2 * t) % 10;
                                                        int p = (jb + e + 2 * t) / 10;
                                                        int g = (p + t);
                                                        if ((tb == e) && (g == t)) {
                                                                System.out.println("n= " + n + " e = " + e
                                                                                + " t=" + t);
                                                        }
                                                }
                                        }
                                }

                        }
                }

        }

        public static void main(String[] args) {
                cal();
        }

}

求出来就一堆零罢了,n,e,t 都是0,基它的很明显,不确定,只能确定t和X相等,s和f是相等的,不可能算出来具体的数值。
最后答案是:n,e,t是0, 1=<(f =s=x)<=9    0=<i<=9  就这样了,这题目可能有问题,要不就是拷下基础扎实不扎实,呵呵!

[[i] 本帖最后由 coldfire 于 2007-3-31 22:45 编辑 [/i]]

smilebear 2007-4-1 00:03

第一题:
#include <iostream.h>
void main()
{
  cout<<"********1"<<'\n';
  cout<<"*******121"<<'\n';
  ...
  cout<<"12345678987654321";
}

第二题:
#include <iostream.h>
void main()
{
  int e,f,i,n,s,t,x;
  long x1,x2,y;
  for(e=0;e<=9;e++)
  {
    for(f=0;f<=9;f++)
    {
      for(i=0;i<=9;i++)
      {
        for(n=0;n<=9;n++)
        {
          for(s=0;s<=9;s++)
          {
            for(t=0;t<=9;t++)
            {
              for(x=0;x<=9;x++)
              {
                x1=1010000*f+100000*i+1000*t+110*e+n;
                x2=100*t+10*e+n;
                y=1000000*s+100000*i+10000*x+1000*t+110*e+n;
                if((x1+2*x2)==y)
                {
                  cout<<"e= "<<e<<'\n';
                  cout<<"f= "<<f<<'\n';
                  cout<<"i= "<<i<<'\n';
                  cout<<"n= "<<n<<'\n';
                  cout<<"s= "<<s<<'\n';
                  cout<<"t= "<<t<<'\n';
                  cout<<"x= "<<x<<'\n';
                  break;
                }
              }
            }
          }
        }
      }
    }
  }
}

- -!!!

flydream521 2007-4-1 00:40

第一题:

#include "stdio.h"
void main()
{
int i,j,k,m;

for (i=1;i<10;i++)
  {
    for(j=1;j<10-i;j++)
        {
          printf("*");
        }
   
    for(m=1;m<i+1;m++)       
        {
          printf("%d",m)
        }
           
    for(k=i;k>1;k--)
        {
          printf("%d",k-1)       
        }
    }       
                                
}

第二题是什么意思?

flydream521 2007-4-1 00:58

忘记加上分号和换行符,补上:

#include "stdio.h"
void main()
{

int i,j,k,m;

for (i=1;i<10;i++)
  {
    for(j=1;j<10-i;j++)
        {
          printf("*");
        }
   
    for(m=1;m<i+1;m++)        
        {
          printf("%d",m);
        }
            
    for(k=i;k>1;k--)
        {
          printf("%d",k-1);        
        }
   
     printf("\n");
    }        
                                
}

Eagle1983 2007-4-1 14:14

[quote]第一题:
#include <iostream.h>
void main()
{
  cout<<"********1"<<'\n';
  cout<<"*******121"<<'\n';
  ...
  cout<<"12345678987654321";
}
[/quote]
太幽默了吧 呵呵

zhouchunlin 2007-4-1 14:29

第一题答案:

public class inputPractice {
public static void main(String[] args){
  
  int lineCount=9;
  for (int i=1; i<=lineCount; i++){
   
   int startCount=lineCount-i;
   for(int start=startCount; start>0; start--){
    System.out.print("*");
   }
   
      for (int number1=1; number1<i+1; number1++){
       System.out.print(String.valueOf(number1));
      }
   int k=i;
      for (int number2=1; number2<i; number2++){      
        System.out.print(String.valueOf(--k));              
      }
   System.out.print("\n");
  }
}
}

dantaoyao 2007-4-1 19:36

这么多程序 有意思

第一题还是考察对for循环的理解和使用的

xiaomengmao2007 2007-4-1 21:03

sdlkfj8

yyjzxyghj 2007-4-2 09:29

虽然现在做测试,好久都没有接触编程方面的东东,那些东西看来都还给老师了
看来要加强温习一下罗!

ihwks 2007-4-2 11:44

[quote]原帖由 [i]smilebear[/i] 于 2007-4-1 00:03 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=471860&ptid=71428][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
第一题:
#include
void main()
{
  cout [/quote]

这个最牛!!也太有才了

lovefei1027 2007-4-2 11:47

[quote]原帖由 [i]pilouzi[/i] 于 2007-3-30 15:37 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=471061&ptid=71428][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
太有材了
佩服佩服
刚才我在编译器上运行了
完全正确!!!!
你是做测试的吗? [/quote]
#5的和题目要求有些不符合的,第二个for循环改为9-i就可以了
对于第二个题目25#已经说的很清楚了,也是关于for循环的,可能就是让写循环程序了

I_hui 2007-4-2 15:10

晕了
!!

ok-ok 2007-4-2 15:17

sdlkfj5 学习了 非常好的题目

鱼鳞 2007-4-2 16:38

望而怯步~

小小丫 2007-4-2 17:03

sdlkfj1 功能测试太没前途了,看了楼上那些有才的人
偶觉得很自卑

秋天的枫叶 2007-4-2 17:57

领教了,都是测试强人啊sdlkfj2
页: [1] 2
查看完整版本: 去面试测试人员,公司给了我两道程序算法题..