#include<stdio.h>
int main()
{
int n,t,i,j,a[200],k,temp=0,x,m=1;
scanf("%d",&t);
for(j=1;j<=t;i++)
{
scanf("%d",&n);
a[0]=1;
for(i=1;i<=n;i++)
{
for(k=0;k<m;k++)
{
x=a[k]*i+temp;
a[k]=x%10;
temp=x/10;
}
if(temp!=0)
{
while(temp!=0)
{
k=m;
a[k]=temp/10;
m++;
}
}
}
}
for(j=1;j<=t;j++)
{
for(k=m;k>=0;k–)
{
printf("%d",a[k]);
}
printf("\n");
}
return 0;
}
It’s difficult to read your code next time mark the code part as a code.
here is my code
#include<iostream>
using namespace std;
int main(){
int n, t;
int a[160], x;
cin>>t;
while(t--){
int m=1, z, temp=0;
a[0]=1;
cin>>n;
for(int i = 1; i <= n; i++){
for(int j = 0; j< m; j++){
x= a[j]*i + temp;
a[j]= x%10;
temp = x/10;
}
while(temp!=0){
a[m] = temp%10;
temp = temp/10;
m++;
}
}
for(int q= m-1; q>=0; q--)
cout<<a[q];
cout<<"\n";
}
}
Pretty much same logic as yours. If you face any problem, comment below.
PS If a answer helps you please don’t hesitate to up vote it.
1 Like
i guess there is something wrong in the while(temp!=0)loop bcoz ur not changing the value of temp at all!
#include<stdio.h>
int main()
{
int n,t,q,i,j,a[200],k,temp=0,x=0,m=1;
scanf("%d",&t);
for(j=1;j<=t;j++ )
{
a[0]=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=0;k<m;k++)
{
x=a[k]*i+temp;
a[k]=x%10;
temp=x/10;
}
while(temp!=0)
{
a[m]=temp%10;
temp=temp/10;
m++;
}
}
for(q=m-1;q>=0;q--)
{
printf("%d",a[q]);
}
}
/for(j=1;j<=t;j++)
{
for(k=m-1;k>=0;k–)
{
printf("%d",a[k]);
}
printf("\n");
}/
}
1 Like
could you please tell me whats wrong in this code…?? i have changed my code or could you just write your code in c.
#include<stdio.h>
int main{ int n,t,q,i,j,k,temp=0,x=0,m=1;
scanf("%d",&t);
for(j=1;j<=t;j++ )
{ int a[200]={0};
a[0]=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=0;k<m;k++)
{
x=a[k]*i+temp;
a[k]=x%10;
temp=x/10;
}
while(temp!=0)
{
a[m]=temp%10;
temp=temp/10;
m++;
}
}
for(q=m-1;q>=0;q--)
{
printf("%d",a[q]);
}
printf("\n");
}
return 0;
}
This is your corrected code.I have made 2 corrections:
- Declaring int a[200] inside the for loop and initializing it to 0.
- printf("\n"); at the end
I think you can think of the two corrections made,if you have any doubts comment below!
#include<stdio.h>
int main()
{
int n,t,q,i,j,a[200],k;
scanf("%d",&t);
for(j=1;j<=t;j++ )
{
// you need to reset the value of temp, x and m each time
int temp=0,x=0,m=1;
a[0]=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=0;k<m;k++)
{
x=a[k]*i+temp;
a[k]=x%10;
temp=x/10;
}
while(temp!=0)
{
a[m]=temp%10;
temp=temp/10;
m++;
}
}
for(q=m-1;q>=0;q--)
{
printf("%d",a[q]);
}
// here a new line
printf("\n");
}
}