參考鏈接:http://blog.csdn.net/litiouslove/article/details/7891700
水仙花數(shù)(daffodil)
題目:輸出100 ~ 999中的所有水仙花數(shù)瞬场,若3位數(shù)ABC滿足ABC = A^3 + B^3 + C^3个榕,則稱其為水仙花數(shù)。例如153 = 1^3 + 5^3 + 3^3,所以153是水仙花數(shù)峭拘。
源碼:
#include <stdio.h>
int main(void)
{
int i, a, b, c;
for(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 is a daffodil number.\n", i);
}
return 0;
}
韓信點兵(hanxin)
題目:韓信才智過人火窒,從不直接清點自己軍隊的人數(shù)镶殷,只要讓士兵先后以三人一排利花、五人一排、七人一排地變換隊形泊藕,而他每次都只是掠一眼隊伍的排位就知道人數(shù)了辅辩。輸入3個非負(fù)整數(shù)a,b娃圆,c玫锋,表示每種隊形排尾的人數(shù)(a<3,b<5讼呢,c<7)撩鹿,輸出總?cè)藬?shù)的最小值(或報告無解)。已知總?cè)藬?shù)不小于10悦屏,不超過100节沦。
樣例輸入: 2 1 6
樣例輸出: 41
樣例輸入: 2 1 4
樣例輸出: No Answer
源碼:
#include <stdio.h>
int main(void)
{
int i, a, b, c;
scanf("%d%d%d", &a, &b, &c);
for(i = 10; i <= 100; i++)
{
if(i%3 == a && i%5 ==b && i%7 ==c)
{
printf("%d\n", i);
break;
}
}
if(i == 101)
printf("No answer");
return 0;
}
倒三角形(triangle)
題目:輸入正整數(shù)n<=20,輸出一個n層的倒三角形础爬。例如n=5時輸出如下:
#########
#######
#####
###
#
源碼:
#include <stdio.h>
int main(void)
{
int i, j, k, n;
scanf("%d", &n);
for(i = 0; i < n; i++)
{
k = i;
for(j = 0; j < k; j++)
printf(" ");
for(j = 0; j < 2*n-2*i-1; j++)
printf("#");
printf("\n");
}
return 0;
}
子序列的和(subsequence)
題目:輸入兩個正整數(shù)n<m<10^6
甫贯,輸出1/n^2 + 1/(n+1)^2 + …… + 1/m^2
,保留5位小數(shù)看蚜。例如n=2,m=4時答案是0.42361;n=65536,m=655360時答案為0.00001叫搁。注意:本題有陷阱。
分析:還是for循環(huán)累加供炎。本題陷阱在于n比較大時渴逻,nn會溢出,所以 1/n^2 應(yīng)該用 1/n/n 而不是 1/(nn)碱茁。
源碼:
#include <stdio.h>
int main(void)
{
int n, m, i;
double sum = 0;
scanf("%d%d", &n, &m);
for(i = n; i <= m; i++)
sum += 1.0/i/i;
printf("%.5lf\n", sum);
return 0;
}
分?jǐn)?shù)化小數(shù)(decimal)
題目:輸入正整數(shù)a,b,c裸卫,輸出a/b的小數(shù)形式仿贬,精確到小數(shù)點后c位纽竣。a,b <= 10^6,c <= 100茧泪。例如a=1,b=6,c=4時應(yīng)輸出0.1667.
分析:考察格式化輸出蜓氨,printf("%.lf", x, y, z); 中兩個可用后邊的變量表示。*
源碼:
#include <stdio.h>
int main(void)
{
int a, b, c;
double x;
scanf("%d%d%d", &a, &b, &c);
x = 1.0*a/b;
printf("%.*lf\n", c, x); //printf("%*.*lf", x, y, z) 第一個*對應(yīng)x队伟,第二個*對應(yīng)y穴吹,lf對應(yīng)z
return 0;
}
排列(permutition)
題目:用1,2嗜侮,3……9組成3個三位數(shù)abc,def和ghi港令,每個數(shù)字恰好使用一次啥容,要求abc:def:ghi = 1:2:3。輸出所有解顷霹。提示:不必太動腦筋咪惠。
分析:利用數(shù)組,a[1]~a[9]賦值為0淋淀,令a[出現(xiàn)的數(shù)字] = 1遥昧,若a[1] + a[2] + …… +a[9] == 9,則全部數(shù)字都出現(xiàn)朵纷。
源碼:
#include <stdio.h>
int main(void)
{
int x, y, z, a[10] = {0};
for(x = 100; x < 333; x++)
{
y = 2*x;
z = 3*x;
//令a[出現(xiàn)的數(shù)字] = 1
a[x/100] = a[x/10%10] = a[x%10] = 1;
a[y/100] = a[y/10%10] = a[y%10] = 1;
a[z/100] = a[z/10%10] = a[z%10] = 1;
int i, s = 0;
for(i = 1; i < 10; i++)
s += a[i];
if(s == 9)
printf("%d\t%d\t%d\n", x, y, z);
for(i = 1; i < 10; i++) //重新賦值為0
a[i] = 0;
}
return 0;
}