C語言程序設計
寫在前面的話——點 點贊,關注和收藏吧!!! 狂肝一個周終于結束了!
點 點贊和關注吧!!!
博主在盡力的補代碼和思路;
里面包含了自己學習C語言,通過網站的挑戰來鞏固自己對C的理解;
里面的代碼僅供參考,若有錯誤之處,歡迎提出;
大家也可以跟我一樣去通過闖關來理解C的不一樣;
C語言挑戰網站
第1部分 熟悉C語言程序編輯與調試環境 第1關打印輸出 Hello World 思路
這個比較簡單,直接打印輸出即可。
#include
int main(void)
{
/********* Begin *********/
printf("Hello World");
/********* End *********/
return 0;
}
第2關:打印輸出圖形 思路
每一步打印就OK
#include
int main(void)
{
/********* Begin *********/
printf(" *\n");
printf(" ***\n");
printf(" OK\n");
printf(" Hello!\n");
printf("*********\n");
/********* End *********/
return 0;
}
第3關:求3個數的最大值 思路
直接定義a為最大值,然后通過a,b,c比較找到最大值。
#include
int main(void)
{
/********* Begin *********/
int a,b,c; //輸入三個整數 //每次輸入以Enter鍵結束
scanf("%d,%d,%d",&a,&b,&c); //輸入變量
int max=a;
if(max<b) //比較大小
max=b; //把數值大的那一個數
if(max<c) //比較大小
max=c; //把數值大的那一個數
printf("max=%d\n",max); //輸出結果
/********* End *********/
return 0;
}
第4關:熟悉C語言調試過程 思路
判斷值是否為5是的話直接輸出需要的值,不需要就輸出另外一個。
#include"stdio.h"
int main(void)
{
/********* Begin *********/
int x;
int y=2,z=3;
scanf("%d",&x);
if(x==y+z)
printf("*****");
else
printf("#####" );
return 0;
/********* End *********/
}
第2部分 順序結構程序設計 第1關:加法運算 思路
直接定義a+b=c,然后直接輸出就c OK。
#include
int main(void)
{
int a,b,c;
//Please input a,b:
/*********Begin*********/
scanf("%d,%d",&a,&b);
c=a+b;
printf("%d+%d=%d\n",a,b,c);
/*********End**********/
return 0;
}
第2關:不使用第3個變量,實現兩個數的對調 思路
輸出時直接輸出就OK
#include
int main(void)
{
int a,b;
//Enter a and b:
scanf("%d%d",&a,&b);
printf("a=%d b=%d\n",a,b);
/*********Begin*********/
/*********End**********/
printf("a=%d b=%d\n",b,a);
return 0;
}
第3關:用宏定義常量 思路
利用宏定義來定義P的值,然后直接用宏定義就OK
#include
#define p 30
int main(void)
{
/*********Begin*********/
int x;
scanf("%d",&x);
printf("%d",x*p);
/*********End**********/
return 0;
}
第4關:數字分離 思路
第一次模輸出個位c語言為什么不能調試,然后除以10 然后模輸出十位,然后/100模輸出百位。
#include
int main(void)
{
/*********Begin*********/
int a,b,x,c;
scanf("%d",&x);
c=x%10;
b=(x/10)%10;
a=(x/100)%10;
printf("%d %d %d",a,b,c);
/*********End**********/
return 0;
}
第5關:計算總成績和平均成績
直接將每個成績加起來,然后除以同學數,計算平均值。
#include
int main(void)
{
/*********Begin*********/
int a,b,c,d,e;
scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
int sum=0;
double ave=0;
sum=(a+b+c+d+e);
ave=(a+b+c+d+e)/5.00;
printf("%d ",sum);
printf("%.2f",ave);
/*********End**********/
return 0;
}
第6關:求三角形的面積
輸入三角形的各個邊長c語言為什么不能調試,然后用三角形的公式計算出面積。
#include
#include
int main(void)
{
/*********Begin*********/
double a,b,c,s,area;
scanf("%lf %lf %lf",&a,&b,&c);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%.3f",area);
/*********End**********/
return 0;
}
第7關:立體幾何計算題
計算立體幾何的面積,周長,表面積,利用所學的公式直接計算輸出即可。
#include
#define PI 3.14
int main(void)
{
/*********Begin*********/
double r,C1,Sb,Vb,h;
scanf("%lf,%lf",&r,&h);
C1=PI*r*2;
Sb=4*PI*r*r;
Vb=h*PI*r*r;
printf("C1=%.2f\n",C1);
printf("Sb=%.2f\n",Sb);
printf("Vb=%.2f\n",Vb);
/*********End**********/
return 0;
}
第8關:計算兩個正整數的最大公約數
#include
int MaxCommonFactor( int a, int b)
{
int c;
if(a<=0||b<=0)
return -1;
while(b!=0)
{
c=a%b;
a=b;
b=c;
}
return a;
}
int main(void)
{
/*********Begin*********/
int a=0,b=0;
int tmp=0;
scanf("%d,%d",&a,&b);
if(a<b){
tmp=b;

b=a;
a=tmp;
}
while(b!=0)
{
tmp=a%b;
a=b;
b=tmp;
}
printf("%d",a);
/*********End**********/
return 0;
}
第3部分 選擇結構程序設計 3-1選擇結構程序設計 第1關:排序
#include
int main(void)
{
/*********Begin*********/
int a,b,c;
int tmp;
printf("請輸入三個整數:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
tmp=a;
a=b;
b=tmp;
}
if(a>c)
{
tmp=a;
a=c;
c=tmp;
}
if(b>c)
{
tmp=b;
b=c;
c=tmp;
}
printf("從小到大排列為:%d,%d,%d",a,b,c);
/*********End**********/
return 0;
}
第2關:選擇結構-閏年判斷
#include
int main(void)
{
/*********Begin*********/
int year;
scanf("%d",&year);
if(year % 4 == 0 && year % 100 != 0)
{
printf("%d 是閏年!",year);
}
else if(year % 400 == 0)
{
printf("%d 是閏年!",year);
}
else printf("%d 不是閏年! ",year);
/*********End**********/
return 0;
}
第3關:選擇結構-分段函數問題
#include
int main(void)
{
/*********Begin*********/
double x;
double y;
scanf("%lf",&x);
if(x < 0 && x != -3)
{
y=x*x+x-6;
}
else if(x >= 0 && x < 10 && x != 2 && x != 3)
{
y=x*x - 5 * x +6;
}
else
{
y=x*x - x -1;
}
printf("%.3f",y);
/*********End**********/
return 0;
}
第4關:學生成績等級換算
#include
int main(void)
{
/*********Begin*********/
int Score;
scanf("%d",&Score);
if(Score>=90 && Score <= 100)
{
printf("A");
}
else if(Score < 90 && Score >= 80)
{
printf("B");
}
else if(Score < 80 && Score >= 70)
{
printf("C");
}
else if(Score < 70 && Score >= 60)
{
printf("D");
}
else if(Score < 60 && Score >= 0)
{
printf("E");
}
else printf("Score is error!");
/*********End**********/
return 0;
}
3-2選擇結構程序設計進階 第1關:快遞費用計算
#include
#include
int main(void)
{
/*********Begin*********/
int area = 0;
float weight,start_weight,extra_weight,price = 0;
int area_start_money[5] = {10,10,15,15,15}; // 每個區域的起重費用
float area_extra_money[5] = {3,4,5,6.5,10}; // 每個區域的續重費用
// printf("please input area number and weight(eg:0,10.5):\n");
scanf("%d,%f",&area,&weight);
//輸入合法性檢查
if(area<0 || area>4){
printf("Error in Area\n");
price = 0;
}
else if(weight < 0){
printf("Error in Weight!\n");
price = 0;
}
else{
start_weight = 1;
extra_weight = ceil(weight - 1); //ceil表示向上去整,不足1公斤,按1公斤計算
price = area_start_money[area] + extra_weight * area_extra_money[area];
}
printf("Price: %.2f\n",price);
/*********End**********/
return 0;
}
第2關:計算一元二次方程的根
#include
#include
int main(void)
{
/*********Begin*********/
printf("Please enter the coefficients a,b,c:\n");
double a,b,c,tmp,y,x1,x2;
scanf("%lf,%lf,%lf",&a,&b,&c);
tmp=-(b/(2*a));
y=(b*b - 4*a*c);
if(y<0) printf("error!\n");
else
{
x1=tmp+sqrt(y)/(2*a);
x2=tmp-sqrt(y)/(2*a);
printf("x1=%.4f, x2=%.4f\n",x1,x2);
}
/*********End**********/
return 0;
}
第3關:產品信息格式化
#include
int main(void)
{
/*********Begin*********/
int Item,Purchase,mm,dd,yy;
double Unit;
printf("Enter item number:\n");
scanf("%d",&Item);
printf("Enter unit price:\n");
scanf("%lf",&Unit);
printf("Enter purchase date (mm/dd/yy):\n");
scanf("%d/%d/%d",&mm,&dd,&yy);
printf("Item Unit Purchase\n");
printf("%-9d$ %-9.2f",Item,Unit,Purchase);
printf("%dd%d",mm,dd,yy);
/*********End**********/
return 0;
}
第4部分 循環結構程序設計 4-1循環結構程序設計1 第1關小球自由落體運動
#include
int main(void)
{
/*********Begin*********/
int N;
double M,sum;
scanf("%lf%d",&M,&N);

sum = M;
for(int i=2;i<=N;i++)
{
M /= 2.0;
sum +=M;
if(i>1)
{
sum += M;
}
if(i == N)
{
M /= 2.0;
}
}
printf("%.2f %.2f",M,sum);
/*********End**********/
return 0;
}
求解出n以內(包含n)所有能被5整除的正整數數的乘積s。
#include
int main(void)
{
/*********Begin*********/
int s=1,n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
if(i % 5 == 0)
{
s *= i;
}
}
printf("%d\n", s);
/*********End**********/
return 0;
}
第3關:最大公約數和最小公倍數
#include
int main(void)
{
/*********Begin*********/
int x,y,t,z;
scanf("%d%d",&x,&y);
if(x>y)
{
t=x;
x=y;
y=t;
}
for(int i=x;x<y;i--)
{
if(y%i==0 && x%i==0){
printf("最大公約數是:%d\n",i);
break;
}
}
for(int z=y;;z++)
{
if(z % y ==0 && z % x == 0) {
printf("最小公倍數是:%d",z);
break;
}
}
/*********End**********/
return 0;
}
第4關:字符串中各類字符數的統計
#include
int main(void)
{
/*********Begin*********/
int digit=0,letter=0,space=0,other=0;
char c;
while((c=getchar()) != '\n')
{
if((c >='a' && c <= 'z') || (c <= 'Z' && c >= 'A')){
letter++;
}
else if(c >= '0' && c <= '9'){
digit++;
}
else if(' ' == c){
space++;
}
else
other++;
}
printf("%d %d %d %d",letter,digit,space,other);
/*********End**********/
return 0;
}
第5關:求sn=a+aa+aaa+aaaa+…的值
#include
int main(void)
{
/*********Begin*********/
int a,n,sum=0,Sum=0,add=0;
scanf("%d%d",&a,&n);
for(int i=0,t=1;i<n;i++)
{
sum = a*t;
Sum += sum;
add += Sum;
t =t*10;
}
printf("%d",add);
/*********End**********/
return 0;
}
4-2循環結構程序設計2 第1關:C循環-求平均成績
#include
int main(void)
{
/*********Begin*********/
double array,sum=0;
int n;
scanf("%d",&n);
if(n <= 0) printf("the number of students:the scores:average=0.00");
else
{
for(int i=0;i<n;i++)
{
scanf(" %lf",&array);
sum += array;
}
printf("the number of students:the scores:average=%.2f",sum/n);
}
/*********End**********/
return 0;
}
第2關:C循環-求各位數字之積
#include
int main(void)
{
/*********Begin*********/
int n,a,b=1,i;
scanf("%d",&n);
if(n % 10 == 0) printf("0\n");
else {
while(n)
{
i=(int) n / 10;
a= n % 10;
n=i;
b *= a;
}
printf("%d",b);
}
/*********End**********/
return 0;
}
第3關:C循環-求階乘之和
#include
int main(void)
{
/*********Begin*********/
int n,sum=0,mul=1;
scanf("%d",&n);
if(n == 0) printf("1");
else if(n < 0) printf("0");
else
{
for(int i=1;i <= n;i++)
{
mul *= i;
sum += mul;
}
printf("%d",sum);
}
/*********End**********/
return 0;
}
第4關:C循環-水仙花數
#include
int main(void)
{
/*********Begin*********/
int a,b,c,n;
for(int n=101;n<1000;n++)
{
a = n%10;
b = (n/10) % 10;
c= (n/100) % 10;
if((a*a*a + b*b*b + c*c*c) == n) printf("%d ",n);
}
/*********End**********/
return 0;
}
第5關:C循環-尋找完數
#include
int main(void)
{
/*********Begin*********/
int m,n,sum;

for(int m=2;m<1000;m++)
{
sum = 1;
for(int n=2;n <= m/2;n++)
{
if(m % n==0) sum += n;
}
if(sum == m) printf("%d\n",m);
}
/*********End**********/
return 0;
}
第6關:分數求和
#include
int main(void)
{
/*********Begin*********/
int flag = -1;
double sum = 0;
for(int i=1;i<= 100;i++)
{
if(i%2 != 0) sum += (1.0/i);
else sum += flag * (1.0/i);
}
printf("%.3f",sum);
/*********End**********/
return 0;
}
第5部分 函數 5-1函數 第1關求和
#include
//編寫函數
/*********Begin*********/
/*********End**********/
int main(void)
{
/*********Begin*********/
int n,sum;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum += i;
}
printf("%d",sum);
/*********End**********/
return 0;
}
第2關:回文數計算
#include
int solve(int n){
/*********Begin*********/
int i,j=0;
i=n;
while(i)
{
j = j*10 + i%10;
i /= 10;
}
if(j==n) return 1;
else return 0;
}
/*********End**********/
int main(void)
{
for(int i=200;i<=3000;i++)
{
if(solve(i)) printf("%d\n",i);
}
return 0;
}
第3關: 編寫函數求表達式的值
#include
//編寫題目要求的函數
/*********Begin*********/
int main(void)
{
/*********Begin*********/
int n;
double sum=0,a=1,b=1;
scanf("%d",&n);
for(int i=0;i<=n;i++)
{
if(i==0 || i==1)
a = 1;
else
a *= i;
b *= (2*i+1);
sum += (double)a/b;
}
printf("%.10f",sum);
/*********End**********/
return 0;
}
第4關:階乘數列
#include
//編寫函數
/*********Begin*********/
/*********End**********/
int main(void)
{
/*********Begin*********/
int n;
long long sum,a=1;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
a *= i;
sum += a;
}
printf("%lld",sum);
/*********End**********/
return 0;
}
第5關:親密數
#include
void solve(int a){
/*********Begin*********/
int b,n,i;
for(b=0,i=1;i<=a/2;i++)
if(!(a%i))
b=b+i;
for(n=0,i=1;i<=b/2;i++ )
if(!(b%i))
n=n+i;
if(n==a&&a<b)
printf("(%d,%d)",a,b);
/*********End**********/
}
int main(void)
{
for(int a=1;a<3000;a++)
solve(a);
return 0;
}
第6關:公約公倍數
#include
//編寫最大公約數GCD函數
/*********Begin*********/
long long sum;
long long GCD(long long x, long long y)
{
long long i, k, m, n;
sum = 1;
k = x > y ? y : x;
i = 2;
while (i <= k){
m = x % i;
n = y % i;
if (m == 0 && n == 0){
sum *= i;
x /= i;
y /= i;
i = 2;
}
else
i++;
}
return sum;
}
/*********End**********/
//編寫最小公倍數LCM函數
/*********Begin*********/
long long LCM(long long p, long long q)
{
long long lc;
lc = p * q / sum;
return lc;
}
/*********End**********/
int main(void)
{
/*********Begin*********/
long long a, b,hcf, lcm;
scanf("%lld %lld", &a, &b);
if(a<0 || b<0 ) printf("Input Error");
else
{
hcf = GCD(a, b); //調用最大公約數函數
lcm = LCM(a, b); //調用最小公倍數函數
printf("%lld %lld\n", hcf, lcm); //輸出最大公約數和最小公倍數
}
/*********End**********/
return 0;
}
5-2遞歸函數、嵌套函數 第1關:遞歸求階乘數列
#include
long long solve(long long n){
/*********Begin*********/
long long alt = 1;
for(int i=1;i<=n;i++){
alt *= i;
}
return alt;
/*********End**********/
}
int main(void)
{

long long n,sum;
scanf("%lld",&n);
long long ans=0;
for(long long i=1;i<=n;i++)
{
ans+=solve(i);
}
printf("%lld", ans);
return 0;
}
第2關:遞歸實現輸出一個整數的逆序
#include
void solve(int n){
printf("%d", n%10);
/*********Begin*********/
n /= 10;
/*********End**********/
if(n>0) solve(n);
}
int main(void)
{
int n;
scanf("%d",&n);
solve(n);
return 0;
}
第3關:將整數遞歸轉換成字符串
#include
void solve(int n){
int temp=n%10;
/*********Begin*********/
n /= 10;
if(n>0) solve(n);
/*********End**********/
if(n)
printf(" %d", temp);
else
printf("%d", temp);
}
int main(void)
{
int n;
scanf("%d",&n);
solve(n);
return 0;
}
第4關:遞歸實現函數
#include
int Acm(int m,int n){
int a;
if(m==0&&n>0)
/*********Begin*********/
a = n + 1;
/*********End**********/
else if(n==0&&m>0)
/*********Begin*********/
a=Acm(m-1,1);
/*********End**********/
else
/*********Begin*********/
a=Acm(m-1,Acm(m,n-1));
/*********End**********/
return a;
}
int main(void)
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d", Acm(m,n));
return 0;
}
第6部分 數組 6-1一維數組和二維數組 第1關:排序問題
#include
int main(void)
{
/*********Begin*********/
int array[10];
for(int i=0;i<10;i++)
scanf("%d",&array[i]);
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(array[i] >array[j])
{
int tmp = array[j];
array[j]=array[i];
array[i]=tmp;
}
}
}
for(int i=0;i<10;i++)
{
printf("%d ",array[i]);
}
/*********End**********/
return 0;
}
第2關:查找整數
#include
int main(void)
{
/*********Begin*********/
int m,n;
scanf("%d\n",&n);
int array[n];
for(int i=0;i<n;i++)
{
scanf("%d ",&array[i]);
}
scanf("%d\n",&m);
for(int i=0;i<n;i++)
{
if(m == array[i])
{
printf("%d",i+1);
break;
}
if(i+1==n) printf("-1");
}
/*********End**********/
return 0;
}
第三關:計算數組中元素的最大值
#include
int main(void)
{
/*********Begin*********/
int m=0,n=0;
printf("Input m, n:");
scanf("%d,%d",&m,&n);
int array[m][n];
printf("Input %d*%d array:\n",m,n);
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
scanf("%d",&array[i][j]);
}
}
int max = array[0][0],row=1,col=1;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(max <array[i][j])
{
max = array[i][j];
row = i+1;
col = j+1;
}
}
}
printf("max=%d, row=%d, col=%d",max,row,col);
/*********End**********/
return 0;
}
6-2字符數組 第1關:字符逆序
#include
int main(void)
{
/*********Begin*********/
int n;
char str[100],C;
scanf("%s",&str);
n = strlen(str);
for(int i=0,j=n-1;i<n/2;i++,j--)
{
C = str[i];
str[i] = str[j];
str[j] = C;
}
printf("%s",str);
/*********End**********/
return 0;
}
第2關:字符統計
#include
int main(void)
{
/*********Begin*********/
char str[50][50];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%s",&str[i]);
for(int i=0;i<n;i++)
{
int count=0;
for(int j=0;str[i][j]!='\0';j++){
if(str[i][j]>='0'&&str[i][j]<='9'){
count++;
}
}
printf("%d\n",count);
}
/*********End**********/
return 0;
}
第3關:字符插入
#include
#include
int main(void)
{
/*********Begin*********/

int max,min,i,j;
char a[100],b[100];
gets(a);
gets(b);
int m=strlen(a);
int n=strlen(b);
for(i=0;i<m;i++)
if(a[min] > a[i])
min = i;
for(i=0;i<n;i++)
if(b[max] < b[i])
max = i;
for(j=m+1;j>min;j--)
a[j] = a[j-1];
a[j+1] = b[max];
puts(a);
/*********End**********/
return 0;
}
第4關:字符串處理
#include
int main(void)
{
/*********Begin*********/
char s1[150],s2[150],s3[150];
int f,m,n,i,j=0,k=0;
gets(s1);
gets(s2);
scanf("%d",&f);
m=strlen(s1);
n=strlen(s2);
for(i=f;i<m;i++)
{
s3[k++]=s1[i];
}
for(i=f;i<n+f+1;i++)
{
s1[i]=s2[j++];
}
strcat(s1,s3);
s1[m+n]='\0';
printf("%s",s1);
/*********End**********/
return 0;
}
第5關:字符串統計
#include
#include
#define N 1024
char s[N + 1], t[N + 1];
int main(void)
{
/*********Begin*********/
fgets(s, N, stdin);
for(;;) {
if(strncmp(s, "stop", 4) == 0 && s[4] == '\n')
break;
int sum = 0, maxlen = 0;
char *p;
p = strtok(s, " \t\n");
while(p) {
int len = strlen(p);
if(len > maxlen) {
maxlen = len;
strcpy(t, p);
}
sum += len;
p = strtok(NULL, " \t\n");
}
printf("%d %s\n", sum, t);
fgets(s, N, stdin);
}
/*********End**********/
return 0;
}
第6關:字符串排序
#include
#include
int main()
{
char a[85],b[85],c[85],t[85];
while(gets(a)!=NULL)
{
gets(b);
gets(c);
if(strcmp(a,b)>0)
{
strcpy(t,a);
strcpy(a,b);
strcpy(b,t);
}
if(strcmp(a,c)>0)
{
strcpy(t,a);
strcpy(a,c);
strcpy(c,t);
}
if(strcmp(b,c)>0)
{
strcpy(t,b);
strcpy(b,c);
strcpy(c,t);
}
puts(a);
puts(b);
puts(c);
}
return 0;
}
第7部分 指針 7-1指針 第1關:用指針法輸入12個整數,然后按每行4個數輸出
#include
int main(void)
{
/*********Begin*********/
int a[12],n,i;
int *p=a;
for(n=0;n<12;n++)
{
scanf("%d",p++);
}
p=a;
i=1;
for(n=0;n<12;n++){
if((n+1)/4==i){
printf("%d",*p);
}
else {
printf("%d ", *p);
}
p++;
if((n+1)/4==i){
if (i==3){
break;
}
printf("\n");
i++;
}
}
/*********End**********/
return 0;
}
第2關:對輸入的兩個整數a,b,用指針變量作為函數參數,交換a和b的值。
#include
/*********Begin*********/
int main(void)
{
int a,b;
scanf("%d%d",&a,&b);
/*********Begin*********/
int *p1,*p2;
p1 = &b;
p2 = &a;
printf("%d ",*p1);
printf("%d",*p2);
/*********End**********/
return 0;
}
第3關:報數
#include
int main(void)
{
/*********Begin*********/
int n;
int a[1000];
scanf("%d",&n);
int b = n;
int c = 0;
for (int i = 1; i <= n; i++)
{
a[i] = 1;
}
for (int i = 1;;i++)
{
if (i == (n + 1))
i = 1;
if (a[i] == 1)
{
c++;
}
else
continue;
if (c % 3 == 0)
{
a[i] = 0;
b--;
}
if (b == 1)
break;
}
for (int i = 1; i <= n; i++)
{
if (a[i] == 1)
printf("%d\n", i);
}
/*********End**********/
return 0;
}
第4關:函數(后續跟進;代碼不完整)
#include
int main(void)
{
char a[110],b[110];
scanf("%s%s",a,b);
if(strcmp(a,b)>0)
printf("%s", a);
else
printf("%s", b);
return 0;
}
7-2指針進階 第一關:讀入n(1