-
28-08-2014, 04:43 PM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hãy liệt kê tất cả các số đối xứng có N chữ số và tổng các chữ số đúng bằng S cho trước.
#include <iostream>
#include<cmath>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int ktra_chu_so(int k,int n){
int dem=0;
int tong=0;
while(k!=0){
int du=k%10;
tong=tong+du;
dem++;
k=k/10;
if(du==0)
return 0;
}
if((tong%10==0)&&(dem==n))
return 1;
}
int ktra_doi_xung(int k,int n){
int m=n/2;
int du=k%(pow(10,m));
for(int i=n/2;i>=0;i--){
int h=du%10;
int dao_du=h*pow(10,i);
du=du/10;
}
int nguyen=k/pow(10,m);
if(dao_du==nguyen)
return 1;
}
int main() {
int n,k,tong;
cout<<"nhap k,n:";
cin>>k>>n;
if((ktra_chu_so(k,n)==1)&&(ktra_doi_xung(k,n)==1))
cout<<"yes";
return 0;
}
// a c giúp e với ạ. lỗi ở chỗ hàm ktra đối xứng ạ. vấn đề nằm ở chỗ hàm pow ấy ạView more random threads:
- Lỗi event_handler trong C++ sửa như thế nào?
- Giúp mình hoàn thành BT này với :(
- Thắc mắc về khái niệm Push-pull, open-drain
- phần mềm C++ cho win 8
- Đưa dữ liệu từ file input.txt lên listview
- Lỗi cấp phát bộ nhớ
- [Solved]Duyệt tập con của n phần tử!
- Về dslk đơn
- Phần code này bị lỗi gì vậy mấy anh?
- Một vấn đề nhỏ cần chỉ giáo !
-
28-08-2014, 05:00 PM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:#include <iostream> #include<cmath> using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int ktra_chu_so(int k,int n){ int dem=0; int tong=0; while(k!=0){ int du=k%10; tong=tong+du; dem++; k=k/10; if(du==0) return 0; } if((tong%10==0)&&(dem==n)) return 1; } int ktra_doi_xung(int k,int n){ int m=n/2; int du=k%(pow(10,m));//Hàm pow chỉ dùng được với kiểu double, toán tử % chỉ sử dụng được với số nguyên nên ko tương thích với hàm pow for(int i=n/2;i>=0;i--){ int h=du%10; int dao_du=h*pow(10,i);//dao_du đây nằm trong for nên ko sử dụng được ở bên ngoài {} du=du/10; } int nguyen=k/pow(10,m); if(dao_du==nguyen)//dao_du là biến cục bộ nên không sử dụng được ở bên ngoài dấu {} đâu bạn ạ return 1; } int main() { int n,k,tong; cout<<"nhap k,n:"; cin>>k>>n; if((ktra_chu_so(k,n)==1)&&(ktra_doi_xung(k,n)==1)) cout<<"yes"; return 0; }
-
28-08-2014, 05:35 PM #3
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Chia bài toán trên thành 2 bài toán nhỏ:
1. Tìm tất cả các số có n/2 chữ số và tổng bằng sum/2 ( với n chẵn)
2. Tìm tất cả các số có (n - 1)/2 chữ số và có tổng bằng (sum/2 - k) ( với n lẻ, k từ 0 đến 9)
-
28-08-2014, 06:00 PM #4
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
em cảm ơn m.n nhiều
- - - Nội dung đã được cập nhật ngày 28-08-2014 lúc 10:54 PM - - -
a dungtpit , e tg là trong cùng 1 hàm thì là biến cục bộ mà a, vẫn sd đc chứ a
- - - Nội dung đã được cập nhật ngày 28-08-2014 lúc 10:59 PM - - -
có cách nào cải thiện cái hàm ktra_doi_xung cua e k a
- - - Nội dung đã được cập nhật ngày 28-08-2014 lúc 11:00 PM - - -
thế này thì bài toán càng phức tạp a ạ
-
29-08-2014, 02:48 PM #5
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
^
1. Không cần kiểm tra, chỉ cần:
- Ghép x với đảo của x là ra đối xứng.
- Ghép x với đảo của x DIV 10 là ra đối xứng.
2. Phần việc tiếp theo là xử lí cái sum S.
- Thực hiện sinh x sao cho sum(x) là S/2 (dễ).
- ...
khi đề cập đến đội hình MU, không thể ko nói tới một trong các câu lạc bộ bóng đá huyền thoại và với tầm ảnh hưởng nhất trong lịch sử của môn thể thao vua. Với hơn 1 thế kỷ còn đó và phát triển,...
Đội hình MU - Manchester United:...