某OJ 构造表达式

#include <stdio.h> 
int cnt = 0;

void conculate(int n, int sum, int preNum, int sign, int level) {
	if (level == n) { 
		if (sum+preNum*sign == 0) cnt++;
		return;
	}
	conculate(n, sum+preNum*sign, level+1, 1, level+1);
	conculate(n, sum+preNum*sign, level+1, -1, level+1);
	conculate(n, sum, (preNum*10+level+1)*sign, 1, level+1);
}

int main() {
	int n;
	scanf("%d",&n);
	conculate(n, 0, 1, 1, 1);
	printf("%d",cnt);
	return 0;
}
问题描述	
给定一个表示序列长度的整数n(3<=n<=9)。在序列1 2 3…n中插入‘+’,‘-’,‘ ’构造表达式,插入‘ ’表示前后两个数字构成一个整数,例如1 2 -3 -4 -5=0。
输出构造的所有表达式中,结果为0的表达式的数量,例如n=3时,只有表达式1+2-3=0,输出结果为1。
输入说明	
输入数据为一个整数n(n<10),表示序列长度,同时表示输入序列为“1 2 3…n”。
输出说明	
对于每一组数据,输出一个整数,表示构造的表达式中结果为0的表达式数量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,作为一个AI语言模型,我没有代码运行的环境,无法提供完整的图书借阅(对象数组 构造)的代码。不过我可以提供一个简单的例子来帮助你理解: 假设我们有一个Book类用于保存一本书的基本信息,如书名、作者、出版社等。我们要实现一个类似图书馆的系统,可以将书籍加入、借出和归还等。我们可以用一个Book数组来保存所有的书籍,并通过编号来进行借阅操作: ```java public class Book { private String title; private String author; private String publisher; private boolean borrowed; public Book(String title, String author, String publisher) { this.title = title; this.author = author; this.publisher = publisher; this.borrowed = false; } public boolean isBorrowed() { return borrowed; } public void setBorrowed(boolean borrowed) { this.borrowed = borrowed; } // getters and setters for other properties } public class Library { private Book[] books; public Library(Book[] books) { this.books = books; } public void borrow(int bookId) { if (bookId < 0 || bookId >= books.length) { System.out.println("Invalid book ID"); return; } if (books[bookId].isBorrowed()) { System.out.println("This book is already borrowed"); } else { books[bookId].setBorrowed(true); System.out.println("You have successfully borrowed " + books[bookId].getTitle()); } } public void returnBook(int bookId) { if (bookId < 0 || bookId >= books.length) { System.out.println("Invalid book ID"); return; } if (books[bookId].isBorrowed()) { books[bookId].setBorrowed(false); System.out.println("You have successfully returned " + books[bookId].getTitle()); } else { System.out.println("This book is not borrowed"); } } } // main method to demostrate usage public static void main(String[] args) { Book[] books = new Book[3]; books[0] = new Book("Java Programming", "John Doe", "ABC Publications"); books[1] = new Book("Python Programming", "Jane Doe", "XYZ Publications"); books[2] = new Book("C++ Programming", "Jack Doe", "123 Publications"); Library library = new Library(books); // borrow book ID 1 library.borrow(1); // try to borrow book ID 1 again library.borrow(1); // return book ID 0 library.returnBook(0); // try to return book ID 1 (which is not borrowed) library.returnBook(1); } ``` 这个例子中,我们定义了一个Book类,然后创建一个Book数组来保存所有的书籍。借阅和归还操作是通过调用Library类中的方法来实现的。你可以参考这个例子来实现你自己的图书借阅程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值