几道面试题?

shancao 2008-06-10 10:35:40
Sony笔试题
1、
  *
  *.*.
  *..*..*..
  *...*...*...*...
  *....*....*....*....*....
  *.....*.....*.....*.....*.....*.....
  *......*......*......*......*......*......*......
  *.......*.......*.......*.......*.......*.......*.......*.......
编程实现,上述图形。
2、费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其
他方法,但要说明你选择的理由。
...全文
200 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
friedchicken2002 2008-06-11
  • 打赏
  • 举报
回复

/*
1、
  *
  *.*.
  *..*..*..
  *...*...*...*...
  *....*....*....*....*....
  *.....*.....*.....*.....*.....*.....
  *......*......*......*......*......*......*......
  *.......*.......*.......*.......*.......*.......*.......*.......
编程实现,上述图形。
2、费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其
他方法,但要说明你选择的理由。
*/
#include<stdio.h>
#define MAX 100
void fun_1(int n)
{
int i,j,k;
for(i=0;i<=n;i++)
{
for(j=0;j<=i;j++)
{
printf("*");
for(k=0;k<i;k++)
{
printf(".");
}
}
printf("\n");
}
printf("\n");
}

int arr[MAX + 1];
int pos = 0;

void fun_2(int n)
{
int i;

if(pos == 0)
{
arr[0] = 0;
arr[1] = 1;
pos = 1;
}

if(n > MAX)
return;
if(n > pos)
{
for(i = pos+1; i<=n; i++)
{
arr[i] = arr[i-1] + arr[i - 2];
}
pos = n;
}

for(i = 1; i <= n; i++)
{
printf(" %d ", arr[i]);
}
printf("\n");
}

int main()
{
int n;

printf("input value of n:");
scanf("%d", &n);
fun_1(n);
fun_2(n);
return 0;
}
ndsl3334 2008-06-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sukyin 的回复:]
第一题最快的当然是这样:
C/C++ codeintmain(){
printf("%s","*\n");
printf("%s","*.*.\n");
printf("%s","*..*..*..\n");
printf("%s","*...*...*...*...\n");
printf("%s","*....*....*....*....*....\n");
printf("%s","*.....*.....*.....*.....*.....*.....\n");
printf("%s","*......*......*......*......*......*......*......\n");
printf("%s","*.......*.......*.......*.......*…
[/Quote]
up
Rainstorey 2008-06-11
  • 打赏
  • 举报
回复

void testPrint()
{
int j = 0;
for (DWORD i = 0; i < 8; i++)
{
for (DWORD xx = j + 1; xx > 0; xx--)
{
int x = j;
printf("%c",'*');
while (x--)
{
printf("%c",'.');
}
}
j++;

printf("\n");
}
}

int Fibonacci(DWORD n)
{
int x = 1;
int sum = 0;
for (; n > 0; n--)
{
sum += x;
x++;
}
return sum;
}


int main()
{
testPrint();
printf("%d\n",Fibonacci(10));
}


没考虑优化
ygb913 2008-06-11
  • 打赏
  • 举报
回复
斐波那契数列时间复杂最小的是O(n)的算法,因为矩阵
1 1
1 0
的n次方得出的结果是
Fn+1 Fn
Fn Fn-1
用分治法递归算矩阵的n次方,复杂度T(n)=T(n/2)+O(1) 可以算出复杂度T(n)=O(n)
jolong 2008-06-11
  • 打赏
  • 举报
回复
如果说到效率问题 其实8楼9楼确实效率最高的执行
但是办法比较笨 就看什么要求下了
qmm161 2008-06-11
  • 打赏
  • 举报
回复
我觉得是不是要考虑函数的适用性,如3楼4楼的实现都是直接在main里面实现,那么如果题目扩展一下呢?

如果第一题要输出的是10行呢?
如果第二题要输出的是后面的第100个数呢?
sukyin 2008-06-11
  • 打赏
  • 举报
回复
和这个:
int main(){
printf("%s","*\n*.*.\n*..*..*..\n*...*...*...*...\n*....*....*....*....*....\n*.....*.....*.....*.....*.....*.....\n*......*......*......*......*......*......*......\n*.......*.......*.......*.......*.......*.......*.......*.......\n");
}
sukyin 2008-06-11
  • 打赏
  • 举报
回复
第一题最快的当然是这样:

int main(){
printf("%s","*\n");
printf("%s","*.*.\n");
printf("%s","*..*..*..\n");
printf("%s","*...*...*...*...\n");
printf("%s","*....*....*....*....*....\n");
printf("%s","*.....*.....*.....*.....*.....*.....\n");
printf("%s","*......*......*......*......*......*......*......\n");
printf("%s","*.......*.......*.......*.......*.......*.......*.......*.......\n");
}
Eleven 2008-06-11
  • 打赏
  • 举报
回复
Up
Mougou 2008-06-11
  • 打赏
  • 举报
回复
第二题用数列通项公式,具体公式网上查
GoAssemblyNow 2008-06-11
  • 打赏
  • 举报
回复
需要三层循环吗?明明用if......else就可以解决的啊
GoAssemblyNow 2008-06-11
  • 打赏
  • 举报
回复
8楼强!!!
bitxinhai 2008-06-10
  • 打赏
  • 举报
回复
二题:
void main()
{
int a[10];
a[0] = 1;
a[1] = 1;
for(int i = 2;i < 10;i++)
a[i] = a[i-1] + a[i-2];
cout<<a[9]<<endl;
}
输出:55
bitxinhai 2008-06-10
  • 打赏
  • 举报
回复
第一题:
#include<iostream.h>

void main()
{
int i,j,k;
for( i = 1;i <= 8;i++ )
{
for(j = 1;j <= i;j++ )
{
cout<<'*';
for(k = 1;k < i;k++)
cout<<'.';
}

cout<<endl;
}
}

输出为:
  *
  *.*.
  *..*..*..
  *...*...*...*...
  *....*....*....*....*....
  *.....*.....*.....*.....*.....*.....
  *......*......*......*......*......*......*......
  *.......*.......*.......*.......*.......*.......*.......*.......
wzxtolerate 2008-06-10
  • 打赏
  • 举报
回复
这种面试题肯定是比实现的方法的好坏了
matrixdwy 2008-06-10
  • 打赏
  • 举报
回复
简直不敢相信是sony的笔试题

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧