习题2-1 位数(digit)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, count = 0;
scanf("%d\n", &n);
while(n > 0)
{
n = n / 10;
count += 1;
}
printf("%d\n", count);
return 0;
}
习题2-2 水仙花数(daffodil)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c, n;
for(n=100; n <= 999; n++)
{
c = n % 10;
b = (n / 10) % 10;
a = n / 100;
if(n == a*a*a + b*b*b + c*c*c)
{
printf("%d\n", n);
}
}
return 0;
}
习题2-3 韩信点兵(hanxin)
#include <stdio.h>
int main()
{
int n, a, b, c;
scanf("%d%d%d\n", &a, &b, &c);
for(n=10;n<=100;n++)
{
if(n%3==a && n%5==b && n%7==c)
printf("%d\n", n);
}
if(n==101)
{
printf("No answer\n");
}
return 0;
}
习题2-4 倒三角形(triangle)
#include <stdio.h>
int main()
{
int i, j, k, n;
scanf("%d\n", &n);
for(i=n;i>0;i--)
{
for(j=0;j<n-i;j++)
{
printf(" ");
}
for(k=2*(i-1)+1;k>0;k--)
{
printf("*");
}
printf("\n");
}
return 0;
}
习题2-5 统计(stat)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, a, m, n;
scanf("%d%d\n", &n, &m);
for(i=1;i<=n;i++)
{
scanf("%d\n", &a);
if(a < m)
{
printf("%d\n",a);
}
}
return 0;
}
习题2-6 调和级数(harmony)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, n;
double sum = 1.0;
scanf("%d\n", &n);
for(i=2;i<=n;i++)
{
sum += (1.0/n);
}
printf("%.3lf\n", sum);
return 0;
}
习题2-7 近似计算(approximation)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int t=-1;
double n=1.0, sum=1.0;
while(fabs(n)>=0.000001)
{
n = 1.0/(n+2);
n = t*n;
sum += n;
t = (-1)*t;
}
printf("%.3lf\n", sum);
return 0;
}
习题2-8 子序列的和(subsequene)
#include <stdio.h>
int main()
{
int i, n, m;
double sum=0;
scanf("%d%d", &n, &m);
if(n <= 1000000 && m <= 1000000)
{
for(i=n;i<=m;i++)
{
sum = sum + 1.0/(n*n);
}
printf("%.5lf\n", sum);
}
return 0;
}
习题2-9 分数化小数(decimal)
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if(a <= 1000000 && b <= 1000000 && c <= 100)
{
printf("%.*lf\n", c, (double)a/b);
}
return 0;
}
习题2-10 排列(permutation)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c, d, e, f, g, h, i, m, n, s;
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++)
{
for(c=1;c<=9;c++)
{
for(d=1;d<=9;d++)
{
for(e=1;e<=9;e++)
{
for(f=1;f<=9;f++)
{
for(g=1;g<=9;g++)
{
for(h=1;h<=9;h++)
{
for(i=1;i<=9;i++)
{
m=100*a+10*b+c;
n=100*d+10*e+f;
s=100*g+10*h+i;
if((2*m==n)&&(3*m==s)&&(a!=b)&&(a!=c)&&(a!=d)&&(a!=e)&&(a!=f)&&(a!=g)&&(a!=h)&&(a!=i)&&(b!=c)&&(b!=d)&&(b!=e)&&(b!=f)&&(b!=g)&&(b!=h)&&(b!=i)&&(c!=d)&&(c!=e)&&(c!=f)&&(c!=g)&&(c!=h)&&(c!=i)&&(d!=e)&&(d!=f)&&(d!=g)&&(d!=h)&&(d!=i)&&(e!=f)&&(e!=g)&&(e!=h)&&(e!=i)&&(f!=g)&&(f!=h)&&(f!=i)&&(g!=h)&&(g!=i)&&(h!=i))
{
printf("%d %d %d\n", m, n, s);
}
}
}
}
}
}
}
}
}
}
return 0;
}