Bài tập giải thuật doc

8 314 3
Bài tập giải thuật doc

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài 1: Cho số nguyên dương n, kiểm tra tính nguyên tố của n? Bài 2: Cho số nguyên dương m, n. có bao nhiêu số nguyên tố nằm giữa m và n? Bài 3: Cho số nguyên dương p (đủ lớn). Tổng của bao nhiêu số nguyên tố đầu tiên thì lớn hơn p? Bài 4: * Cho số nguyên dương n, có chữ số hàng đơn vị là d. nếu di chuyển chữ số hàng đơn vị lên đầu thì ta được số mới lớn gấp k lần n. (k có giá trị từ 1 9) Biết trước d và k, tìm n? Bài 5: Tìm số ngày của tháng m trong năm y? Bài 6: Cho thời điểm (d/m/y) tìm ngày hôm sau của thời điểm đó? Bài 7: Cho ngày sinh, ngày mất Tính số ngày sống được? B1) kiểm tra tính nguyên tố của n #include<iostream.h> #include<conio.h> //ham kien tra so nguyen to int ktnguyento(int n) { if(n<=1) return 0; else { for(int i=2;i<=n/2;i++) { if(n%i==0) return 0; } return 1; } } void main() { int n; cout<<"Moi ban nhap n : ";cin>>n; if(ktnguyento(n)==1) cout<<n<<" la so nguyen to"; else cout<<n<<" khong la so nguyen to"; getch(); } Bài 2: Cho số nguyên dương m, n. có bao nhiêu số nguyên tố nằm giữa m ,n #include<iostream.h> #include<conio.h> //ham kien tra so nguyen to int ktnguyento(int n) { if(n<=1) return 0; else { for(int i=2;i<=n/2;i++) { if(n%i==0) return 0; } return 1; } } void main() { int m,n,dem=0; cout<<"Hay nhap 2 so khac nhau"<<endl; cout<<"Moi ban nhap m : ";cin>>m; cout<<"Moi ban nhap n : ";cin>>n; if(m<n) { for(int i=m+1;i<n;i++) if(ktnguyento(i)==1) dem++; cout<<"co "<<dem<<" so nguyen to giua "<<m<<" va "<<n; } else { if(m>n) { for(int i=n+1;i<m;i++) if(ktnguyento(i)==1) dem++; cout<<"co "<<dem<<" so nguyen to giua "<<n<<" va "<<m; } else cout<<"Ban da nhap 2 so giong nhau"; } getch(); } Bài 3: Cho số nguyên dương p (đủ lớn). Tổng của bao nhiêu số nguyên tố đầu tiên thì lớn hơn p? #include<iostream.h> #include<conio.h> //ham kien tra so nguyen to int ktnguyento(int n) { if(n<=1) return 0; else { for(int i=2;i<=n/2;i++) { if(n%i==0) return 0; } return 1; } } void main() { int n,dem=0,tong=0; cout<<"Nhap gia tri lon hon 1"<<endl; cout<<"Moi ban nhap n : ";cin>>n; if(n>1) { for(int i=2;i<n;i++) { if(ktnguyento(i)) { tong=tong+i; dem++; } } if(tong>n) cout<<"Gia tri can tim : "<<dem; else cout<<"tong cac so trong khoang khong the lon hon "<<n; } else cout<<"ban da nhap gia tri khong hop le"; getch(); } Bài 5: Tìm số ngày của tháng m trong năm y? #include<iostream.h> #include<conio.h> void main() { int thang,nam,ngay; cout<<"Nhap thang : ";cin>>thang; cout<<"Nhap nam : ";cin>>nam; switch(thang) { case 1:ngay=31;break; case 2: if(nam%4==0||nam%400==0) ngay=29; else ngay=28; break; case 3:ngay=31;break; case 4:ngay=3;break; case 5:ngay=31;break; case 6:ngay=30;break; case 7:ngay=31;break; case 8:ngay=31;break; case 9:ngay=30;break; case 10:ngay=31;break; case 11:ngay=30;break; case 12:ngay=31;break; defaul : ngay=0;break; } if(ngay>0) cout<<"thang ban chon co : "<<ngay<<" ngay"; else cout<<"ban da nhap so lieu khong dung"; getch(); } Bài 6: Cho thời điểm (d/m/y) tìm ngày hôm sau của thời điểm đó? #include<iostream.h> #include<conio.h> int ngaycuoi(int thang, int nam) { if(thang==2) { if(nam%4==0||nam%400==0) return 29; else return 28; } else if(thang==4||thang==6||thang==9||thang==11) return 30; return 31; } main() { int ngay,thang,nam,ngaycuoithang; bool loi = false; cout<<"Nhap ngay : ";cin>>ngay; cout<<"Nhap thang : ";cin>>thang; cout<<"Nhap nam: ";cin>>nam; cout << "Ngay vua nhap la:"<<ngay<<"/"<<thang<<"/"<<nam; if(thang<1||thang>12) cout<<"ban da nhap thang khong dung"; else { ngaycuoithang=ngaycuoi(thang,nam); if(ngay<1||ngay>ngaycuoithang) cout<<"ban da nhap ngay khong dung"; else if(ngay!=ngaycuoithang) cout<<"\nNgay tiep theo la:"<<+ +ngay<<"/"<<thang<<"/"<<nam; else { if(thang==12) cout<<"\nNgay tiep theo la:"<<1<<"/"<<1<<"/"<<++nam; else cout<<"\nNgay tiep theo la:"<<++ngay<<"/"<<+ +thang<<"/"<<nam; } } getch(); } Bài 7: Cho ngày sinh, ngày mất Tính số ngày sống được? #include<iostream.h> #include<conio.h> //kiem tra thangs bool ktthang(int thang) { return thang>=1&&thang<=12?true:false; } //xac dinh so ngay cua mot thang int ngaycuoithang(int nam, int thang) { if(thang==2) { if(nam%4==0||nam%400==0) return 29; else return 28; } else if(thang==4||thang==6||thang==9||thang==11) return 30; return 31; } //so ngay ke tu dau nam den ngay thang ban chon int ngaydaqua(int nam,int thang,int ngay) { int ngaydaqua=0; for(int i=1;i<thang;i++) ngaydaqua+=ngaycuoithang(nam,thang); ngaydaqua+=ngay; return ngaydaqua; } void main() { int nams,thangs,ngays,namm,thangm,ngaym,tong=0; cout<<"nhap nam sinh : ";cin>>nams; cout<<"nhap thang sinh : ";cin>>thangs; cout<<"nhap ngay sinh : ";cin>>ngays; cout<<"nhap nam mat : ";cin>>namm; cout<<"nhap thang mat : ";cin>>thangm; cout<<"nhap ngay mat : ";cin>>ngaym; if(nams<namm) { if(ktthang(thangs)&&ktthang(thangm)) { if(ngays>=1&&ngays<=ngaycuoithang(nams,thangs)&& ngaym>=1&&ngaym<=ngaycuoithang(namm,thangm)) { //tinh so ngay trong cac nam giua nam sinh va nam mat for(int i=nams+1;i<namm;i++) { if(i%4==0||i%400==0) tong=tong+366; else tong+=365; } //cong voi so ngay song cua nam sinh if(nams%4==0||nams%400==0) tong+=366-ngaydaqua(nams,thangs,ngays); else tong+=365-ngaydaqua(nams,thangs,ngays); //cong voi so ngay song cua nam mat tong+=ngaydaqua(namm,thangm,ngaym); } else cout<<"ban da nhap ngay sai"; } else cout<<"ban da nhap thang sai"; } else cout<<"Ban da nhap nam sai"; cout<<"So ngay da song la : "<<tong; getch(); } . Bài 1: Cho số nguyên dương n, kiểm tra tính nguyên tố của n? Bài 2: Cho số nguyên dương m, n. có bao nhiêu số nguyên tố nằm giữa m và n? Bài 3: Cho số nguyên dương. p? Bài 4: * Cho số nguyên dương n, có chữ số hàng đơn vị là d. nếu di chuyển chữ số hàng đơn vị lên đầu thì ta được số mới lớn gấp k lần n. (k có giá trị từ 1 9) Biết trước d và k, tìm n? Bài. trước d và k, tìm n? Bài 5: Tìm số ngày của tháng m trong năm y? Bài 6: Cho thời điểm (d/m/y) tìm ngày hôm sau của thời điểm đó? Bài 7: Cho ngày sinh, ngày mất Tính số ngày sống được? B1) kiểm

Ngày đăng: 13/07/2014, 13:20

Tài liệu cùng người dùng

Tài liệu liên quan