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 17:03
sdlkfj1 功能测试太没前途了,看了楼上那些有才的人
偶觉得很自卑
秋天的枫叶 2007-4-2 17:57
领教了,都是测试强人啊sdlkfj2