三道c++编程题~求大神帮忙

如题所述

第1个回答  2015-01-07
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
    int n, r;
    scanf("%d", &n);
    __asm {


    // evaluate r = f(n)

    mov edx, 1//小于等于1的直接等于1,然后赋值给r
    cmp dword ptr[n],1
    jle lab2

    xor ecx, ecx//清空ecx,edx
    xor edx, edx

 lab0:
    cmp ecx, 0
    je lab1
    cmp ecx, 1
    je lab1
    mov edx, ebx
    add edx, eax
    mov eax, ebx
    mov ebx, edx
    inc ecx
    cmp ecx, dword ptr[n]//ecx<=n时循环
    jle lab0
    jmp lab2

lab1:
    mov eax, 1
    mov ebx, 1
    inc ecx
    jmp lab0
lab2:
    mov dword ptr[r] , edx;
    }
    printf("fib(%d) = %d\n", n, r);
    return 0;
}

追问

我们学的是c++这个我看不懂啊~~

第2个回答  2015-01-07
第三题:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n;
char s[100];
gets(s);
for(i=0,j=strlen(s)-1;i<=j;)
if(s[i]==s[j])
i++,j--;
else
break;
if(i<=j)
printf("no");
else
printf("yes");
return 0;
}

第二题: 用链表,动态增减就可以了
第一题:
#include<stdio.h>
int main()
{
int i,n;
__int64 a[200];
scanf("%d",&n);
a[0]=1,a[1]=1;
for(i=2;i<n;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<n;i++)
if(i%10==0&&i!=0) printf("\n");
else printf(" %I64d ",a[i]);
return 0;
}
第3个回答  2015-01-07

追问

还有两道~拜托了

第4个回答  2015-01-07
我好像也不会
相似回答