Bài 1
Biết lãi suất tiết kiệm là t%/tháng (nhập t từ bàn phím). Nhập số vốn ban đầu n và số tháng gửi k. Tính số tiền nhận được sau k tháng.
Viết bằng C
#include<stdio.h> #include<conio.h> #include<math.h> void main() { float t,n; int k; printf("Nhap lai suat: "); scanf("%f",&t); printf("Nhap so tien gui ban dau: "); scanf("%f",&n); printf("Nhap so thang gui: "); scanf("%d",&k); for(int i=1;i<=k;i++) { n=n+n*(t/100); } printf("Tong so tien nhan duoc la %f",n); getch(); }
Viết bằng python
def bai1(t,n,k): for i in range(k): n=n+n*t/100 print "Tong so tien nhan duoc la:" print n if __name__=="__main__": t=float(raw_input("Nhap lai suat: ")) n=float(raw_input("Nhap so tien gui ban dau: ")) k=int(raw_input("Nhap so thang gui: ")) bai1(t,n,k)
Bài 2: Tiền điện hàng tháng được tính như sau:
- 100 số đầu tính m1 đồng/số
- từ số 101 trở lên tính m2 đồng/số
Nhập m1,m2, số điện năng tiêu thụ s. Hãy tính tiền điện phải trả.
Code C
Code Python
- 100 số đầu tính m1 đồng/số
- từ số 101 trở lên tính m2 đồng/số
Nhập m1,m2, số điện năng tiêu thụ s. Hãy tính tiền điện phải trả.
Code C
#include<stdio.h> #include<conio.h> #include<math.h> void main() { float m1,m2,t; int s; printf("Nhap don gia cho 100 so dau : "); scanf("%f",&m1); printf("Nhap don gia tu so 101 tro len: "); scanf("%f",&m2); printf("Nhap so dien dung trong thang:"); scanf("%d",&s); if((s<100)&&(s>0)) { t=s*100; printf("So tien phai tra la: %f",t ); } else { t=m1*100+(s-100)*m2; printf("So tien phai tra la: %f",t); } getch(); }
Code Python
def bai2(m1,m2,s): if(s<100): t=100*m1 print "so tien phai tra la:",t else: t=100*m1+(s-100)*m2 print "so tien phai tra la:",t if __name__=="__main__": m1=float(raw_input("Nhap don gia cho 100 so dau: ")) m2=float(raw_input("Nhap don gia so 101 tro len: ")) s=int(raw_input("Nhap so dien da dung trong thang: ")) bai2(m1,m2,s)
Bài 3: In ra m số nguyên tố đầu tiên
Input: Nhập vào số nguyên m
Process
- Viết hàm kiểm tra tính nguyên tố của số k
+ nếu k<2: k không phải là số nguyên tố
+ lặp biến i từ 2 đến sqrt(k)
nếu k%i==0 thì k ko phải là số nguyên tố
- in ra các số nguyên tố:
+ gán biến dem=0, k=0
+ lặp: trong khi dem<m thì:
nếu k là nguyên tố: in k, tăng dem++
tăng k++
Output in ra m số nguyên tố đầu tiên
code C
Code python (chưa giải quyết trong hàm check_prime xét 2 đến sqrt(x))
Input: Nhập vào số nguyên m
Process
- Viết hàm kiểm tra tính nguyên tố của số k
+ nếu k<2: k không phải là số nguyên tố
+ lặp biến i từ 2 đến sqrt(k)
nếu k%i==0 thì k ko phải là số nguyên tố
- in ra các số nguyên tố:
+ gán biến dem=0, k=0
+ lặp: trong khi dem<m thì:
nếu k là nguyên tố: in k, tăng dem++
tăng k++
Output in ra m số nguyên tố đầu tiên
code C
#include<stdio.h> #include<conio.h> #include<math.h> int check_prime(int x) { if(x<2) return 0; for(int i=2;i<=sqrt(x);i++) if(x%i==0) return 0; return 1; } void main() { int m; int k=1,dem=0; printf("Nhap m: "); scanf("%d",&m); printf("%d so nguyen to dau tien la: ",m); while(dem<m) { if(check_prime(k)==1) { printf("%4d",k); dem++; } k++; } getch(); }
Code python (chưa giải quyết trong hàm check_prime xét 2 đến sqrt(x))
def check_prime(x): if(x<2): return 0 elif(x==2): return 1 t=range(x) for i in t[2:]: if(x%i==0): return 0 return 1 if __name__=="__main__": m=int(raw_input("Nhap m: ")) print m, "so nguyen to dau tien la: " dem=k=0 while(dem<m): if(check_prime(k)==1): print k, dem=dem+1 k=k+1
Bài 4: Tìm phân số tối giản của một phân số.
Ý tưởng: Ta tìm UCLN của tử số và mẫu số bằng giải thuật Euclid, sau đó chia cả tử và mẫu cho UCLN.
Code C
Code Python
Ý tưởng: Ta tìm UCLN của tử số và mẫu số bằng giải thuật Euclid, sau đó chia cả tử và mẫu cho UCLN.
Code C
#include<stdio.h> #include<conio.h> int UCLN(int a, int b) { if (a < 0) a = -a; if (b < 0) b = -b; while (a&&b) { if(a >= b) a %= b; else b %= a; } return (a + b); } void main() { int tu,mau; printf("Nhap tu so: "); scanf("%d",&tu); printf("Nhap mau so: "); scanf("%d",&mau); printf("Phan so ban vua nhap la: %d/%d \n",tu, mau); printf("Phan so toi gian la: %d/%d",tu/UCLN(tu,mau),mau/UCLN(tu,mau)); getch(); }
Code Python
def ucln(a,b): if(a<0): a=-a if(b<0): b=-b while(a&b): if(a>=b): a=a%b else: b=b%a return(a+b) if __name__=="__main__": tu=int(raw_input("Nhap tu so: ")) mau=int(raw_input("Nhap mau so: ")) print "Phan so ban vua nhap la: ",tu,"/",mau print "Phan so toi gian la: ", tu/ucln(tu,mau),"/",mau/ucln(tu,mau)
Bài 5: Nhập một số nguyên, đếm xem số đó có bao nhiêu chữ số và tính tổng các chữ số.
Code C
Code Python
Code C
#include<stdio.h> #include<conio.h> void main() { int n,sodu,dem=0,s=0; printf("Nhap vao n: "); scanf("%d",&n); while(n>0) { sodu=n%10; s=s+sodu; dem++; n=n/10; } printf("So da nhap co %d chu so",dem); printf("\nTong cac chu so la %d",s); getch(); }
Code Python
def bai5(n): s,dem=0,0 while(n>0): sodu=n%10 s=s+sodu dem=dem+1 n=n/10 print "So da nhap co",dem,"chu so" print "Tong cac chu so la: ",s if __name__=="__main__": n=int(raw_input("Nhap vao n: ")) bai5(n)
Bài 6: Tìm các số có 3 chữ số sao cho tổng lập phương của các chữ số bằng chính số đó (gọi là các số Amstrong)
Code C
Code Python
Code C
#include<stdio.h> #include<conio.h> void main() { int a,b,c; for(a=1;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) if(a*a*a+b*b*b+c*c*c==100*a+10*b+c) printf("%d \n",100*a+10*b+c); getch(); }
Code Python
if __name__=="__main__": t=range(10) for a in t[1:]: for b in t: for c in t: if(a*a*a+b*b*b+c*c*c==100*a+10*b+c): print 100*a+10*b+c
bạn ơi! cho mình hỏi hàm UCLN ấy ...
Trả lờiXóanếu "return a+b" thì không rút gọn được phân số tối giản mà phải "return abs(a-b)"....không biết có phải nhầm lẫn gì không ?tại mình mới học python nên cũng bở ngỡ...bạn giúp mình chỗ đó nha ...thank
Hey chủ thớt cho mình hỏi. Tại sao trong các bài của bạn đều có
Trả lờiXóaif __name__==“__main__”:
trong khi mình xóa đi chương trình vẫn chạy ngon. Cho mình hỏi luôn ý nghĩa nó là gì. Tks bro, mình là newbie.
thằng này nó copy bài viết của người ta hỏi nó làm gì biết mà trả lời
XóaDùng để run trên console
Xóabài 1 nhé, phần python nên bỏ đoạn for i in range(k) đi, ví dụ k(tháng) = 5 tháng thì nó sẽ bị lặp tới 5 lần, lần sau sẽ dùng n (tiền gửi) của lần trước
Trả lờiXóabài 2: phần python, trong đoạn if (s<100) tại sao lại là t= 100 * m1 được? vớ vẩn! phải là t = s * m1 nhé!
bài 1 theo mình hiểu là lãi tháng này cộng dồn vào vốn cho tháng sau, nên theo mình code bài 1 đúng rồi chứ???? Ý bạn có phải là lãi chỉ tính trên số vốn ban đầu gửi ko?
XóaNhận xét này đã bị tác giả xóa.
Trả lờiXóaTks thớt nhiều
Trả lờiXóanhờ mấy cách ko tối ưu gì giúp ng mới dễ hiểu hơn
Trả lờiXóanhờ mấy cách ko tối ưu gì giúp ng mới dễ hiểu hơn
Trả lờiXóaBài 6 có thể viết thành (a**3+b**3+c**3==a*100+b*10+c) code gọn hơn
Trả lờiXóaBài 5:
Trả lờiXóas=0
n=input()
for x in n:
s+=int(x)
print ("So ban nhap la:",n)
print("Co tong so ",len(n),"chu so")
print("Tong cac chu so la: ",s)