Số đối Xứng Lớn Nhất.

Sunday, December 7, 2014

Số đối xứng lớn nhất.

Số đối xứng lớn nhất.Cho số tự nhiên N. Số N là đối xứng nếu đọc từ trái qua phải và từ phải qua trái là như nhau. Cho phép đổi chỗ các chữ số của N. Hãy cho biết có thể đổi chỗ một số các chữ số để nhận được một số đối xứng hay không? Nếu có hãy đưa ra số lớn nhất nhận được. n<2.109Với bài tiến hành đếm các chữ số xuất hiện trong số N lưu vào mảng. Và tiến hành kiểm tra. Có 2 trường hợp có thể ghép được số đối xứng max: Nếu số chữ số của N là lẻ + 1 chữ số xuất hiện với số lần lẻ, các chữ số còn lại xuất hiện chẵn số lần. nếu số chữ số của N là chẵn + số lần các chữ số xuất hiện đều chẵn. Còn lại các trường hợp khác không thể ghép được số đối xứng.Đến việc ghép số. nếu lẻ số các chữ số của N thì chừa 1 vị trí chính giữa ra để chèn số đơn không có đôi vào. Nếu số các chữ số chắn thì ghép bình thường.Để ghép được dãy max thì lấy số lớn nhất, xét ngược từ 9->0 trong dãy đếm làm số đầu tiên. Và dần định hình sẽ lấy chữ số đó làm chữ số cuối cùng. Và tiếp tục các số tương ứng.Code - lập trình CBài đơn giản hóa đề tí. Lược bỏ phần đọc tệp. nhập N là số test. Và nhập lần lượt từng test từ bàn phím.// code dungnv #include <stdio.h>#include <conio.h>int a[10];int kiemtra(unsigned long x){if (x==0) return 0; for (int i=0;i<=9;i++) a[i]=0; while(x!=0) { a[x%10]++; x=x/10; } intdem1=0,dem2=0; for (int i=0;i<=9;i++) { dem1+=a[i]; if(a[i]%2!=0) dem2++; } if(dem1%2==1&&dem2==1) return 1; if(dem1%2==0&&dem2==0) return 1; return 0;}unsigned long ghepsomax(unsignedlong x){ unsigned long k=0; int tg=0; for (int i=9;i>=0;i--) { if(a[i]!=0) { if(a[i]%2==1) tg=i; for(int j=0;j<a[i]/2;j++) { k+=i; k=k*10; } } } if (tg!=0) k+=tg; else k=k/10; for (int i=0;i<=9;i++) { if(a[i]!=0) { for(int j=0;j<a[i]/2;j++) { k=k*10; k+=i; } } } return k; }int main(){ int n; unsigned long x; printf("\nNhap n = "); scanf("%d",&n); for (int i=0;i<n;i++) { printf("\nNhap test %d :",i+1); scanf("%lu",&x); if(kiemtra(x)) printf("\nYES %lu",ghepsomax(x)); elseprintf("\nNo"); } getch();}Code - lập trình CBài đầy đủ viết theo ngôn ngữ lập trình C theo yêu cầu đề thêm phần đọc tệp và ghi tệp chỉ chỉnh sửa bài trên 1 tí.File dữ liệu vào (input.txt) các bạn tạo ở địa chỉ nền ổ C. C\\: input.txt nhập các test vào để chạy chương trình.File dữ liệu ra (output.txt) được tạo ở nền ổ C. Vào C\\: output.txt để xem kết quả.// code dungnv#include <stdio.h>#include <conio.h>int a[10];int kiemtra(unsigned long x){ if (x==0) return 0; for (int i=0;i<=9;i++) a[i]=0; while(x!=0) { a[x%10]++; x=x/10; } intdem1=0,dem2=0; for (int i=0;i<=9;i++) { dem1+=a[i]; if(a[i]%2!=0) dem2++; } if(dem1%2==1&&dem2==1) return 1; if(dem1%2==0&&dem2==0) return 1; return 0;}unsigned long ghepsomax(unsignedlong x){ unsigned long k=0; int tg=0; for (int i=9;i>=0;i--) { if(a[i]!=0) { if(a[i]%2==1) tg=i; for(int j=0;j<a[i]/2;j++) { k+=i; k=k*10; } } } if (tg!=0) k+=tg; else k=k/10; for (int i=0;i<=9;i++) { if(a[i]!=0) { for(int j=0;j<a[i]/2;j++) { k=k*10; k+=i; } } } return k; }int main(){ int n; unsigned long x; FILE *u,*v; u=fopen("C:\\input.txt","rt"); v=fopen("C:\\output.txt","wt"); fscanf(u,"%d",&n); for (int i=0;i<n;i++) { fscanf(u,"%lu",&x); if(kiemtra(x)) fprintf(v,"\nYES %lu",ghepsomax(x)); elsefprintf(v,"\nNo"); } fclose(u); fclose(v); printf("\nHOAN TAT moi xem ket qua tai c:\\output.txt "); getch();}ảnh test

No comments:

Post a Comment

Newer Post Older Post Home Subscribe to: Post Comments (Atom) thoi trang, lam dep, my pham, lam dang

Mua bán Tên Miền đẹp

Latter Cars

Travel Boats

Xe Hơi Việt Nam

Thuật Toán

California Game

Thương Mại Điện Tử

Du Lịch Xuyên Việt

Hương Hoa Blog

Công Nghệ Thông Tin

Recent Travel

University Overview

Dream Scholarships

DMZ Travel

Khéo tay hay làm

Domain & Hosting

Miss Grand Slam

Tạp chí Toán học Online

Học Bổng

Fame Lawyers

Kinh ngiệm Dân gian

Car Mentors

Voi Con

Mưa Rơi

Tư vấn Luật

Training English

Vietnamese Fashion

Hình Ảnh dễ thương

About Me

My photo CaliforniaInsure.com We've unified marketing and sales with an end-to-end solution that delivers customers. View my complete profile

Blog Archive

  • ▼  2014 (165)
    • ▼  December (14)
      • Bài toán phân tích số (đệ quy quay lui)
      • Bài làm tham khảo câu 1 đề ctdlgt đề 14-TI21006-I-...
      • Liệt kê các xâu tạo bởi hoán vị của các chữ A,B,C,...
      • Lập trình liệt kê các xâu tạo bởi hoán vị của các ...
      • vở ghi kĩ thuật điện tử (bản 2)
      • vở ghi kĩ thuật điện tử (bản 1)
      • Bài làm tham khảo đề ctdlgt đề 09-I-1 01
      • Kỹ Thuật Điện Tử
      • Xử Lý Tín Hiệu Số
      • Đề thi Cấu Trúc Dữ Liệu - Giải Thuật
      • Lô Gic Toán
      • 54k4cntt-dhvinh-update
      • Danh bạ 54k4
      • Số đối xứng lớn nhất.

Từ khóa » Số đối Xứng Lớn Nhất