2-1
輸出100~999中的所有水仙花數。若3位數ABC滿足ABC=A3+B3+C3,則稱其為水仙花
數。例如153=13+53+33,是以153是水仙花數。
#include<stdio.h>
int main()
{
int a,b,c;
for(int i=100;i<999;i++){
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
return 0;
}
2-2
#include <stdio.h>
/*相傳韓信才智過人,從不直接清點自己軍隊的人數,隻要讓士兵先後以三人一排、五人
一排、七人一排地變換隊形,而他每次隻掠一眼隊伍的排尾就知道總人數了。輸入包含多組
資料,每組資料包含3個非負整數a,b,c,表示每種隊形排尾的人數(a<3,b<5,c<
7),輸出總人數的最小值(或報告無解)。已知總人數不小于10,不超過100。輸入到檔案
結束為止。
樣例輸入:
2 1 6
2 1 3
樣例輸出:
Case 1: 41
Case 2: No answer*/
int main()
{
int i,a,b,c;
scanf("%d%d%d\n",&a,&b,&c);
for(i=10;i<=100;i++){
if(i%3==a&&i%5==b&&i%7==c)
printf("%d\n",i);
}
if(i==100)
printf("No answer");
return 0;
}
2-3
#include <stdio.h>
/*輸入正整數n≤20,輸出一個n層的倒三角形。例如,n=5時輸出如下:
#########
#######
#####
###
#*/
int main()
{
int n;
scanf("%d",&n);
for(int i=n;i>=1;i--){ //n層
for(int j=n;j>i;j--) // 輸出每一行的空格數
printf(" ");
for(int k=0;k<2*i-1;k++)//輸出每一行的#數等于2*i-1
printf("#");
printf("\n");
}
return 0;
}
C++:
for (i = n; i > ; i--) {
for (j = ; j < n - i; j++) cout << " ";
for (j = ; j < *i-; j++) cout << "#";
cout << "\n"; }
2-4
#include <stdio.h>
//注:陷阱就是在n特别大時如果直接n*n就會溢出,是以隻能連除兩次
int main()
{
int n,m;
scanf("%d %d",&n,&m);
double sum=0;
for(int i=n;i<=m;i++)
//sum +=1.0/((n+i)*(n+i));
sum+=1.0/i/i;
printf("%.5f\n",sum);
return 0;
}
2-5
#include <stdio.h>
/*輸入正整數a,b,c,輸出a/b的小數形式,精确到小數點後c位。a,b≤106,c≤100。輸
入包含多組資料,結束标記為a=b=c=0*/
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%.*lf\n",c,(double)a/b);
return 0;
}
2-6
用1,2,3,…,9組成3個三位數abc,def和ghi,每個數字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式輸出所有解,每行一個解。
#include<stdio.h>
int is_valid_number(int num, int array[])
{
int x, y, z;
x = num / 100;
y = num / 10 % 10;
z = num % 10;
if (x == y || y == z || array[x] || array[y] || array[z]) {
// Digit used
return 0;
}
array[x] = array[y] = array[z] = 1;
return 1;
}
int main()
{
int array[10];
array[0] = 1;
for (int checked_num = 123; checked_num < 329; checked_num++ )
{
for (int i = 1; i < 10; i++)
array[i] = 0;
if (is_valid_number(checked_num, array)
&& is_valid_number(checked_num*2, array)
&& is_valid_number(checked_num*3, array))
{
printf("%d %d %d\n",checked_num,checked_num*2,checked_num*3);
}
}
return 0;
}