Thứ Năm, 14 tháng 1, 2016

c -- python

ác bài tập cơ bản viết bằng C và Python
2011-03-31 04:22:08
Post: #1
Vì em bắt đầu chập chững lập trình, nên những đoạn code dưới đây chỉ để tham khảo. Mong mọi người góp ý để em hoàn thiện hơn.


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
#include
#include
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)
2011-03-31 09:26:22
Post: #2
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
#include
#include
#include
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 amp="" 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 br="">		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)
2011-04-01 09:02:54
Post: #3
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: br="" i="" k="" kh="" l="" n="" ng="" nguy="" ph="" s="" 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 demnế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
#include
#include
int check_prime(int x)
 {
  if(x<2 0="" br="" return="">  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   {
	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 0="" br="" return="">	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		if(check_prime(k)==1):
			print k,
			dem=dem+1
		k=k+1
2011-04-05 07:40:11
Post: #4
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
#include
#include
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<br">	if(b<0 b="-b<br">	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)
2011-04-06 06:50:12
Post: #5
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
#include
#include
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)

2011-04-06 08:03:42
Post: #6
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
#include
#include
void main()
{
 int a,b,c;
 for(a=1;a<10 a="" br="">  for(b=0;b<10 b="" br="">	for(c=0;c<10 br="" 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

0 nhận xét: