Buscar

Lista resolvida de sub-rotinas em C

Prévia do material em texto

Observação: Em algumas das questões, a função “printf” foi ocultada com a finalidade
de reduzir o tamanho do código. Logo no início da primeira questão, por exemplo, tente
digitar alguns números e depois apertar “enter”.
1) Escreva uma função que multiplique dois números naturais através de somas
sucessivas.
Exemplo: 6 * 4 = 4 + 4 + 4 + 4 + 4 + 4.
Entrada e Saida
Entrada:
Dois inteiros m e n.
Saida:
O resultado da multiplicação de m por n através de somas sucessivas.
Exemplos
>> 6 4
<< 24
>> 7 8
<< 56
>> 9 3
<< 27
>> 12 13
<< 156
#include<stdio.h>
int main ()
{
int m,n,g;
int mult (int m,int n);
scanf("%d",&m);
scanf("%d",&n);
g=mult(m,n);
printf("%d",g);
return 0;
}
int mult (int m,int n)
{
int i;
int soma=0;
for(i=1;i<=n;i++)
{
soma=soma+m;
}
return soma;
}
2) Escreva uma função que calcule a soma de dois números naturais, através de
incrementos sucessivos.
Exemplo: 7 + 8 = 7 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1.
Entrada e Saida
Entrada:
Dois inteiros m e n.
Saida:
A soma por incrementos sucessivos de m e n.
Exemplos
>> 6 4
<< 10
>> 7 8
<< 15
>> 9 3
<< 12
>> 12 13
<< 25
#include<stdio.h>
int main ()
{
int m,n;
scanf("%d",&m);
scanf("%d",&n);
int funcao(int x,int y);
int b=funcao(m,n);
printf("%d",b);
return 0;
}
int funcao(int x,int y)
{
int soma=x;
int i;
for(i=1;i<=y;i++)
{
soma=soma+1;
}
return soma;
}
3) Escreva uma função que calcule a multiplicação de dois números naturais através
de incrementos sucessivos.
Exemplo: 9 * 3 = (1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) + (1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) + (1 +
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1).
Entrada e Saida
Entrada:
Dois inteiros m e n.
Saida:
O produto de m e n por incrementos sucessivos.
Exemplos
>> 6 4
<< 24
>> 7 8
<< 56
>> 9 3
<< 27
>> 12 13
<< 156
#include<stdio.h>
int main ()
{
int m,n,b;
scanf("%d",&m);
scanf("%d",&n);
int funcao(int x, int y);
b=funcao(m,n);
printf("%d",b);
return 0;
}
int funcao(int x, int y)
{
int i,j,soma=0;
for(i=1;i<=y;i++)
{
for(j=1;j<=x;j++)
{
soma=soma+1;
}
}
return soma;
}
4) Gere o termo de ordem n da série de Fibonacci.
Entrada e Saida
Entrada:
Um inteiro n.
Saida:
O n-ésimo termo da série de Fibonacci.
Exemplos
>> 5
<< 5
>> 7
<< 13
>> 13
<< 233
>> 20
<< 6765
#include<stdio.h>
int main ()
{
void fibo(int x);
int n;
scanf("%d",&n);
fibo(n);
return 0;
}
void fibo(int x)
{
int i,a,b,soma=0;
for(i=1;i<=x;i++)
{
if(i==1)
{
a=0;
soma=soma+a;
}
if(i==2)
{
b=1;
soma=soma+b;
}
if(i>2)
{
a=b;
b=soma;
soma=a+b;
}
}
printf("%d",soma);
}
5) Gere a série de Fibonacci até o termo de ordem n.
Entrada e Saida
Entrada:
Um inteiro n.
Saida:
A sequência de Fibonacci até o n-ésimo termo.
Exemplos
>> 5
<< 1 1 2 3 5
>> 7
<< 1 1 2 3 5 8 13
>> 13
<< 1 1 2 3 5 8 13 21 34 55 89 144 233
>> 20
<< 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
#include<stdio.h>
int main ()
{
void fibo(int x);
int n;
scanf("%d",&n);
fibo(n);
return 0;
}
void fibo(int x)
{
int i,a,b,soma=0;
for(i=1;i<=x;i++)
{
if(i==1)
{
a=1;
printf("%d,",a);
}
if(i==2)
{
b=1;
printf("%d,",b);
}
if(i>2)
{
soma=a+b;
printf("%d,",soma);
a=b;
b=soma;
}
}
}
6) Calcule o somatório dos n primeiros números inteiros.
Entrada e Saida
Entrada:
Um inteiro n.
Saida:
O somatório dos n primeiros números inteiros.
Exemplos
>> 5
<< 15
>> 7
<< 28
>> 13
<< 91
>> 20
<< 210
#include<stdio.h>
int main ()
{
int n,b;
int soma(int x);
scanf("%d",&n);
b=soma(n);
printf("%d",b);
return 0;
}
int soma(int x)
{
int i,soma=0;
for(i=1;i<=x;i++)
{
soma=soma+i;
}
return soma;
}
7) Escreva uma função que receba um número natural e o escreva na base binária.
Entrada e Saida
Entrada:
Um inteiro n.
Saida:
A representação binária de n.
Exemplos
>> 2
<< 10
>> 5
<< 101
>> 10
<< 1010
>> 200
<< 11001000
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int basebinaria(int n){
int base=0,i=0;
while(n>0){
float a= pow(10,i);
base=base+a*(n%2);
i=i+1;
n=n/2;
}
return base;
}
int main(){
int n,b;
scanf("%d",&n);
b=basebinaria(n);
printf("%d",b);
return 0;
}

Continue navegando