Đến nội dung


Hình ảnh
- - - - -

Đề thi Tin học trẻ TP Đà Nẵng 2010-2011


  • Please log in to reply
Chủ đề này có 4 trả lời

#1 perfectstrong

perfectstrong

    $LOVE(x)|_{x =\alpha}^\Omega=+\infty$

  • ĐHV Tổng hợp
  • 3556 Bài viết
  • 0 points
  • Giới tính:Nam
  • Đến từ:ĐN
  • Sở thích:Đàn guitar, ngắm người mình yêu, học toán

Đã gửi 18-04-2011 - 19:09

Bài 1: (5đ)
Nhập vào một số nguyên dương N từ bàn phím (N<= 1000). In ra màn hình các thông tin sau:
- Tổng các ước tự nhiên của N
- Tích các chữ số của N

Giới hạn: 1 giây

Bài 2: (5đ)
Nhập từ bàn phím số nguyên dương N (N<=30). Hãy in ra màn hình số fibonacci thứ N.

Giới hạn: 1 giây

Bài 3: (5đ) Số kề trước.
Cho một số tự nhiên N có K chữ số (0<K<=255). Bằng cách hoán vị các chữ số của N, ta sẽ được một số tự nhiên H.
Yêu cầu: Hãy tìm một số H lớn nhất và nhỏ hơn N từ cách làm trên

Input: File văn bản KETRUOC.INP gồm:
-dòng thứ 1 ghi số nguyên dương m (m<=10)
-m dòng tiếp theo, mỗi dòng ghi một số N.

Output: File văn bản KETRUOC.OUT có m dòng, mỗi dòng chứa một số H. Nếu không có số H thì ghi kết quả là -1.

Giới hạn: 5 giây.

Bài 4: (5đ) Xóa số
Cho trước một dãy gồm N số nguyên không âm x1,x2,x3,...,xN và một số nguyên dương K. Hãy xóa đi ít nhất các phần tử trong dãy số trên để tổng các số còn lại bằng K.

Input: File văn bản XOASO.INP gồm 2 dòng:
-Dòng đầu ghi lại 2 số nguyên N và K cách nhau ít nhất 1 dấu cách, trong đó 0<N; K<=100
-Dòng thứ 2 ghi N số nguyên không âm có giá trị không quá 100, mỗi số cách nhau ít nhất 1 dấu cách.

Output: File văn bản XOASO.OUT ghi một số nguyên M là số phần tử ít nhất cần xóa. Trường hợp không có phương án xóa nào thỏa mãn các phần tử còn lại có tổng bằng K thì ghi ra số M có giá trị bằng -1.

Giới hạn: 5 giây.

Bài viết đã được chỉnh sửa nội dung bởi perfectstrong: 18-04-2011 - 19:19

Luôn yêu để sống, luôn sống để học toán, luôn học toán để yêu!!! :D

$$\text{LOVE}\left( x \right)|_{x = \alpha}^\Omega = + \infty $$

 

 

 

 

I'm still there everywhere.


#2 novae

novae

    Chán học.

  • Thành viên
  • 433 Bài viết
  • 0 points
  • Giới tính:Nam
  • Đến từ:vô cực

Đã gửi 18-04-2011 - 19:48

Bài 1: (5đ)
Nhập vào một số nguyên dương N từ bàn phím (N<= 1000). In ra màn hình các thông tin sau:
- Tổng các ước tự nhiên của N
- Tích các chữ số của N

Giới hạn: 1 giây

Bài 2: (5đ)
Nhập từ bàn phím số nguyên dương N (N<=30). Hãy in ra màn hình số fibonacci thứ N.

Giới hạn: 1 giây


Lâu rồi cũng không lên VMF vì nhiều lí do. Hôm nay lên thấy cái đề hay hay nên làm thử.
Bên dưới là cách làm của mình cho bài 1+2, code C++, 2 bài còn lại sẽ gửi lên sau; file đính kèm bên dưới là file .cpp và file .exe

Bài 1:
#include<iostream.h>
#include<stdlib.h>

int main(void)
{
	int n,i,s,p,m,d;
	cout<<"Nhap so nguyen n: ";
	cin>>n;
	s=0;
	for(i=1;i<=n;i++)
		if (n%i==0)
			s=s+i;
	p=1;m=n;
	while(m!=0)
		{
			d=m%10;
			p=p*d;
			m=m/10;
		}
	cout<<"Tong cac uoc tu nhien cua "<<n<<" la "<<s<<'\n';
	cout<<"Tich cac chu so cua "<<n<<" la "<<p<<'\n';
	system("pause");
}

Bài 2:
#include<iostream.h>
#include<stdlib.h>

int main(void)
{
	int f1=1,f2=1,t,n,i;
	cout<<"Nhap n: ";
	cin>>n;
	for(i=1;i<=n;i++)
		{
			t=f1;
			f1=f2;
			f2=f1+t;
		}
	cout<<"So Fibonacci thu "<<n<<" la "<<t<<'\n';
	system("pause");
}

File gửi kèm

  • File gửi kèm  bai1_2.rar   105.51K   127 Số lần tải

Bài viết đã được chỉnh sửa nội dung bởi novae: 18-04-2011 - 19:50

KEEP MOVING FORWARD

#3 perfectstrong

perfectstrong

    $LOVE(x)|_{x =\alpha}^\Omega=+\infty$

  • ĐHV Tổng hợp
  • 3556 Bài viết
  • 0 points
  • Giới tính:Nam
  • Đến từ:ĐN
  • Sở thích:Đàn guitar, ngắm người mình yêu, học toán

Đã gửi 18-04-2011 - 21:10

code free pascal:
bai 1:
program bl1;
uses crt;
var n,i,s:integer;
begin
clrscr;
write('Moi nhap n=');
readln(n);
s:=0;
for i:=1 to n do
if n mod i=0 then s:=s+i;
writeln('Tong cac uoc tu nhien cua',n,'=',s);
writeln('Tich cac chu so cua ',n,'=');
s:=1;
while n>0 do
begin
s:=s*(n mod 10);
n:=n div 10;
end;
write(s);
readln
end.
bai 2:
program bl2;
uses crt;
var a,b:int64;
i,n:byte;
begin
clrscr;
write('Moi nhap n=');
readln(n);
i:=2;
a:=1;
b:=1;
while i<n do
begin
inc(i);
if i mod 2=1 then a:=a+b
else b:=b+a;
end;
if i mod 2=1 then write(a)
else write(b);
readln
end.

Luôn yêu để sống, luôn sống để học toán, luôn học toán để yêu!!! :D

$$\text{LOVE}\left( x \right)|_{x = \alpha}^\Omega = + \infty $$

 

 

 

 

I'm still there everywhere.


#4 David Evans

David Evans

    Lính mới

  • Thành viên
  • 2 Bài viết
  • 0 points

Đã gửi 10-07-2012 - 22:36

Bài 3: (5đ) Số kề trước.
Cho một số tự nhiên N có K chữ số (0<K<=255). Bằng cách hoán vị các chữ số của N, ta sẽ được một số tự nhiên H.
Yêu cầu: Hãy tìm một số H lớn nhất và nhỏ hơn N từ cách làm trên

Input: File văn bản KETRUOC.INP gồm:
-dòng thứ 1 ghi số nguyên dương m (m<=10)
-m dòng tiếp theo, mỗi dòng ghi một số N.

Output: File văn bản KETRUOC.OUT có m dòng, mỗi dòng chứa một số H. Nếu không có số H thì ghi kết quả là -1.

Giới hạn: 5 giây.


Đề này ra cùi bắp quá, mình sửa lại tí.

Input: File văn bản KETRUOC.INP gồm:
-Nhập vào 1 số n
Output: 1 số h lớn nhất, nhưng nhỏ hơn n sau khi được hoán vị

Mình viết bằng C++
#include <iostream>
using namespace std;
int dem(int n){
    int i=0;
    while(n!=0){
	    n=n/10;
	    i++;
    }
    return i;
};//Dem so
void tach_so(int *p,int d,int n){
    for(int i=1;i<=d;i++){
	    p[i]=n%10;
	    n=n/10;
    }
}//Tach so
int so_nho_hon_n(int *p,int d){
    int a[100];
    int max=p[d];
    int dem=1;
    int temp;
    for(int i=1;i<=d;i++)
	    if(p[i]<max){
		    a[dem]=p[i];
		    dem=dem+1;
	    }
    max=a[1];
    for(int i=1;i<=dem-1;i++){
	    if(a[i]>max) max=a[i];
    }
    return max;
}//Tim so lon nhat nho hon p[1]
bool kiem_tra_so(int *p,int d){
    bool check;
    int min=p[1];
    for(int i=1;i<=d;i++)
	    if(p[i]<min) min=p[i];
    if(min==p[1])
	    check=false;
    else check=true;
    return check;
}//Kiem tra co the hoan vi duoc khong
void sapxep(int *p,int d){
    int temp;
    for(int i=1;i<=d-1;i++){
	    for(int j=i+1;j<=d;j++)
		    if(p[i]<p[j]){
			    temp=p[i];
			    p[i]=p[j];
			    p[j]=temp;
		    }
    }
}//Sap xep theo thu tu giam dan
void Show(int so_dau,int *p,int d){
    cout<<so_dau;
    for(int i=1;i<=d;i++){
	    if(p[i]!=so_dau)
		    cout<<p[i];
    }
}//In ra so sau khi hoan vi
int main()
{
    int n=321,na;
    int d;//Bien dem
    d=dem(n);
    int *p;
    p = new int[d];
    tach_so(p,d,n);
    if(kiem_tra_so(p,d)==false){
	    int so_dau=so_nho_hon_n(p,d);
	    sapxep(p,d);
	    Show(so_dau,p,d);
    }
    else cout<<"So nay khong the hoan vi duoc nua";
    return 0;
}


#5 nghethuat102

nghethuat102

    Trung sĩ

  • Thành viên
  • 129 Bài viết
  • 0 points
  • Giới tính:Nam
  • Đến từ:đâu?
  • Sở thích:code, code, code and code!

Đã gửi 21-07-2014 - 13:19

Lâu rồi cũng không lên VMF vì nhiều lí do. Hôm nay lên thấy cái đề hay hay nên làm thử.
Bên dưới là cách làm của mình cho bài 1+2, code C++, 2 bài còn lại sẽ gửi lên sau; file đính kèm bên dưới là file .cpp và file .exe

Bài 1:

#include<iostream.h>
#include<stdlib.h>

int main(void)
{
	int n,i,s,p,m,d;
	cout<<"Nhap so nguyen n: ";
	cin>>n;
	s=0;
	for(i=1;i<=n;i++)
		if (n%i==0)
			s=s+i;
	p=1;m=n;
	while(m!=0)
		{
			d=m%10;
			p=p*d;
			m=m/10;
		}
	cout<<"Tong cac uoc tu nhien cua "<<n<<" la "<<s<<'\n';
	cout<<"Tich cac chu so cua "<<n<<" la "<<p<<'\n';
	system("pause");
}
Bài 2:
#include<iostream.h>
#include<stdlib.h>

int main(void)
{
	int f1=1,f2=1,t,n,i;
	cout<<"Nhap n: ";
	cin>>n;
	for(i=1;i<=n;i++)
		{
			t=f1;
			f1=f2;
			f2=f1+t;
		}
	cout<<"So Fibonacci thu "<<n<<" la "<<t<<'\n';
	system("pause");
}

Bạn có thể chỉ dạy cho mình lập trình c vs đc k? 






0 người đang xem chủ đề

0 thành viên, 0 khách, 0 thành viên ẩn danh