1.输入n,输出1,2,3,。。。N的值(n >= 1);
#include<stdio.h>
void main()
{ int i,n;
printf("please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++) //i只要小于等于n都输出
printf("%d\n",i);
}
2.输出所有aabbccdd的八位完全平方数。如11223344就是aabbccdd的一种。
#include<stdio.h>
void main()
{ long a,b,c,d,e,f,g,h,i,j;
for(i=10000000;i<=99999999;i++)
{
a=i/10000000; //千万
b=i/1000000%10; //百万
c=i%1000000/100000; //十万
d=i%100000/10000; //万
e=i%10000/1000; //千
f=i%1000/100; //百
g=i%100/10; //十
h=i%10; //个
if(a==b&&c==d&&e==f&&g==h)//判断是否aabbccdd
{
for(j=3162;j<10000;j++)
if(i==j*j) //判断完全平方数
printf("%ld",i);
else
continue;
}
}
}
3.输入n,计算1! + 2! + 。。。。 N!的值。
#include<stdio.h>
void main()
{
int i,n;
printf("please input n:");
scanf("%d",&n);
long s,t;
for(i=1,t=1,s=0;i<=n;i++)//初始i=1,t=1,s=0
{
t*=i; //阶乘
s+=t; //阶乘相加
}
printf("sum=%ld\n",s);
}
4.输入正整数n <= 20,输出一个n层的正三角形
#include<stdio.h>
void main()
{
int n,i,j,k;
printf("please input n:");
scanf("%d", &n);
for(i=0; i<n; i++) //总共要输出n行星号
{
for(j=0; j<n-i; j++) //每行星号前空格数
printf(" ");
for(k=0; k<(2*i+1); k++)//每行星号的个数
printf("*");
printf("\n");
}
}
5.输入n,,输出可大可小的数字正方形矩阵,最外层是第一层数字为1,要求同一层的数字相同,最内层为输入的n,详见样例
易知矩阵长度为2*n-1。
从1开始覆盖矩阵,后面的数会覆盖前面的,每次长度减2就行了。
11111 11111 11111
11111—> 12221 —> 12221
11111 12221 12321
11111 12221 12221
11111 11111 11111
#include<stdio.h>
int a[1000][1000];
void main()
{
int i,j,k=1,n;
printf("please input n:");
scanf("%d",&n);
while(k<=n)
{
for(i=k;i<=2*n-k;i++)//外层覆盖赋值
{
for(j=k;j<=2*n-k;j++)
a[i][j]=k;
}
k=k+1;//再一次覆盖赋值下一层开始
}
for(i=1;i<=2*n-1;i++)//输出正方形矩阵
{
for(j=1;j<=2*n-1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}