Archive for November 2013
NM CNTT1 - Tuần 07 - Bài tập powerpoint
Bài tập làm powerpoint giới thiệu về Leonardo da Vinci
Thầy cô và các bạn có thể tải slide về theo đường dẫn sau: http://goo.gl/wBIcMK (sử dụng Microsoft PowerPoint 2007 trở đi để xem)
NM CNTT1 - Bài 02 - Tuần 05
Đề bài: Chỉ dùng 1 vòng lặp (for hoặc while) hãy tính biểu thức sau:
\[Aver = \sum\limits_{i = 0}^{n - 1} {{{({a_i} - Max)}^2} + \sum\limits_{i = 0}^{n - 1} {{{({a_i} - Min)}^2} + \frac{n}{2}{{(Max - Min)}^2}} } \]
Trong đó Max,Min lần lượt là giá trị lớn nhất, nhỏ nhất của n số thực (được nhập vào từ thiết bị nhập chuẩn).
Ý tưởng:
Ta có:
\[\sum\limits_{i = 0}^{n - 1} {{{({a_i} - Max)}^2} = \sum\limits_{i = 0}^{n - 1} {a_i^2} } - 2Max\sum\limits_{i = 0}^{n - 1} {{a_i}} + n.Ma{x^2}\]
\[\sum\limits_{i = 0}^{n - 1} {{{({a_i} - Min)}^2} = \sum\limits_{i = 0}^{n - 1} {a_i^2} } - 2Min\sum\limits_{i = 0}^{n - 1} {{a_i}} + n.Mi{n^2}\]
Vậy
\[\begin{array}{l}
Aver = \sum\limits_{i = 0}^{n - 1} {{{({a_i} - Max)}^2} + \sum\limits_{i = 0}^{n - 1} {{{({a_i} - Min)}^2} + \frac{n}{2}{{(Max - Min)}^2}} } \\
Aver = 2\sum\limits_{i = 0}^{n - 1} {a_i^2} - 2(Max + Min)\sum\limits_{i = 0}^{n - 1} {{a_i} + n(Ma{x^2} + Mi{n^2}) + \frac{n}{2}{{(Max - Min)}^2}}
\end{array}\]
Thuật toán:
Trong vòng lặp
- Nhập vào số thực và cộng dồn vào biến sum để lưu tổng, cộng vào biến sum2 để lưu tổng bình phương.
- Kiểm tra và cập nhập max, min.
Ráp các giá trị vào công thức và tính kết quả.
Mã nguồn:
Trong đó Max,Min lần lượt là giá trị lớn nhất, nhỏ nhất của n số thực (được nhập vào từ thiết bị nhập chuẩn).
Ý tưởng:
Ta có:
\[\sum\limits_{i = 0}^{n - 1} {{{({a_i} - Max)}^2} = \sum\limits_{i = 0}^{n - 1} {a_i^2} } - 2Max\sum\limits_{i = 0}^{n - 1} {{a_i}} + n.Ma{x^2}\]
\[\sum\limits_{i = 0}^{n - 1} {{{({a_i} - Min)}^2} = \sum\limits_{i = 0}^{n - 1} {a_i^2} } - 2Min\sum\limits_{i = 0}^{n - 1} {{a_i}} + n.Mi{n^2}\]
Vậy
\[\begin{array}{l}
Aver = \sum\limits_{i = 0}^{n - 1} {{{({a_i} - Max)}^2} + \sum\limits_{i = 0}^{n - 1} {{{({a_i} - Min)}^2} + \frac{n}{2}{{(Max - Min)}^2}} } \\
Aver = 2\sum\limits_{i = 0}^{n - 1} {a_i^2} - 2(Max + Min)\sum\limits_{i = 0}^{n - 1} {{a_i} + n(Ma{x^2} + Mi{n^2}) + \frac{n}{2}{{(Max - Min)}^2}}
\end{array}\]
Thuật toán:
Trong vòng lặp
- Nhập vào số thực và cộng dồn vào biến sum để lưu tổng, cộng vào biến sum2 để lưu tổng bình phương.
- Kiểm tra và cập nhập max, min.
Ráp các giá trị vào công thức và tính kết quả.
Mã nguồn:
#include <stdio.h>
int main()
{
int n;
double m, res, a, sum=0, sum2=0, max=-1000000000, min=1000000000;
scanf("%d", &n);
m = (float)n;
while (n>0)
{
scanf("%lf", &a);
sum += a;
sum2 += a*a;
if (max<=a)
max = a;
if (min>=a)
min = a;
n--;
}
res = 2*sum2 - 2*(max+min)*sum + m*(max*max + min*min) + (m/2)*(max-min)*(max-min);
printf("%lf", res);
return 0;
}
int main()
{
int n;
double m, res, a, sum=0, sum2=0, max=-1000000000, min=1000000000;
scanf("%d", &n);
m = (float)n;
while (n>0)
{
scanf("%lf", &a);
sum += a;
sum2 += a*a;
if (max<=a)
max = a;
if (min>=a)
min = a;
n--;
}
res = 2*sum2 - 2*(max+min)*sum + m*(max*max + min*min) + (m/2)*(max-min)*(max-min);
printf("%lf", res);
return 0;
}
NM CNTT1 - Bài 03 - Tuần 05
Đề bài: Cho \[F(x),x \ge 0\] được định nghĩa như sau:
\[F(x) = \left\{ \begin{array}{c} x,x \le 9\\ F(S(x)),x > 9 \end{array} \right.\]
Ý tưởng:
Với:
n=0: F(0!) = 1
n=1: F(1!) = 1
n=2: F(2!) = F(1.2) = F(2) = 2
n=3: F(3!) = F(1.2.3) = F(6) = 6
n=4: F(4!) = F(1.2.3.4) = F(24) = F[S(24)] = 6
n=5: F(5!) = F(1.2.3.4.5) = F(120) = F[S(120)] = 3
n=6: F(6!) = F(1.2.3.4.5.6) = F(720) = F[S(720)] = 9
n=7: F(7!) = F(1.2.3.4.5.6.7) = F(5040) = F[S(5040)] = 9
n=8: F(8!) = F(1.2.3.4.5.6.7.8) = F(40320) = F[S(40320)] = 9
...
n=15: F(15!) = F(1307674368000) = F[S(1307674368000)] = 9
Nhận xét:
Với n=6, ta có
\[F(x) = \left\{ \begin{array}{c} x,x \le 9\\ F(S(x)),x > 9 \end{array} \right.\]
Trong đó S(x): tổng các chữ số của x
Hãy viết chương trình tính F(n!) với 1<=n<=500Ý tưởng:
Với:
n=0: F(0!) = 1
n=1: F(1!) = 1
n=2: F(2!) = F(1.2) = F(2) = 2
n=3: F(3!) = F(1.2.3) = F(6) = 6
n=4: F(4!) = F(1.2.3.4) = F(24) = F[S(24)] = 6
n=5: F(5!) = F(1.2.3.4.5) = F(120) = F[S(120)] = 3
n=6: F(6!) = F(1.2.3.4.5.6) = F(720) = F[S(720)] = 9
n=7: F(7!) = F(1.2.3.4.5.6.7) = F(5040) = F[S(5040)] = 9
n=8: F(8!) = F(1.2.3.4.5.6.7.8) = F(40320) = F[S(40320)] = 9
...
n=15: F(15!) = F(1307674368000) = F[S(1307674368000)] = 9
Nhận xét:
Với n=6, ta có
\[6! = 1.2.3.4.5.6 = {1.2^4}{.3^2}.5 \vdots 9\]
vậy
\[S(6!) \vdots 9\]
Do đó
\[n \ge 6,S(n!) = 9 => F(n!) = 9\]
Một cách tổng quát, ta có
\[F(x) = \left\{ {\begin{array}{*{20}{l}}
{1,x = 0}\\
{1,x = 1}\\
{2,x = 2}\\
{6,x = 3}\\
{6,x = 4}\\
{3,x = 5}\\
{9,x \ge 6}
\end{array}} \right.\]
Mã nguồn:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
switch (n)
{
case 0: printf("1\n"); break;
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
case 3: printf("6\n"); break;
case 4: printf("6\n"); break;
case 5: printf("3\n"); break;
default: printf("9\n"); break;
}
return 0;
}
int main()
{
int n;
scanf("%d", &n);
switch (n)
{
case 0: printf("1\n"); break;
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
case 3: printf("6\n"); break;
case 4: printf("6\n"); break;
case 5: printf("3\n"); break;
default: printf("9\n"); break;
}
return 0;
}
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
switch (n)
{
case 0: printf("1\n"); break;
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
case 3: printf("6\n"); break;
case 4: printf("6\n"); break;
case 5: printf("3\n"); break;
default: printf("9\n"); break;
}
return 0;
}
int main()
{
int n;
scanf("%d", &n);
switch (n)
{
case 0: printf("1\n"); break;
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
case 3: printf("6\n"); break;
case 4: printf("6\n"); break;
case 5: printf("3\n"); break;
default: printf("9\n"); break;
}
return 0;
}
Posted by Unknown
Đôi chút suy nghĩ về trang cá nhân.
Mình thấy Google Site nó khó chịu quá nên chuyển sang Blogger. :)