判断一个三位数是不是奇数,是不是素数,是不是水仙花数的程序如下:
#include<stdioh>
#include<mathh>
int main()
{
int n,a,b,c;
scanf("%d",&n);
if(n%2)printf("%d是一个奇数\n",n);
else printf("%d不是一个奇数\n",n);
for(a=2;a<=sqrt(n);a++)
if(n%a==0)break;
if(n%a)printf("%d是一个素数\n",n);
else printf("%d不是一个素数\n",n);
a=n/100;
b=n/10%10;
c=n%10;
if(n==aaa+bbb+ccc)printf("%d是一个水仙花数\n",n);
else printf("%d不是一个水仙花数\n",n);
return 0;
}
基本思路:1、递归。字符串掐头去尾然后再进行下一级判断。这样会有重复,并且计算复杂度是指数级增长。 2、简单循环。从2->[字符串长度]的字符串逐个获得判断。
这里就用第二种方法了~~
#include <iostream>
#include <cstdio>
#include <cstring>
void outputString(char, int);
char partString(char, int, int);
char revString(char, int);
bool isReversible(char, int);
bool strEqual(char, char, int);
int main() {
using namespace std;
char str;
cout << "Confirm the length of the string : ";
int len = 0;
cin >> len;
if(len <= 0) return 0;
cout << endl << "The string please =O= : ";
str = new char[len + 1];
cinget();
cingetline(str, len);
cout << endl << "The String : " << str;
cout << endl << "Now outputting " << endl;
outputString(str, strlen(str));
cout << endl << "Done, press any key to quit" << endl;
system("pause");
}
void outputString(char str, int len) {
for(int i = 2; i < len - 1; i++) {
for(int j = 0; j < len - i; j++) {
char str2 = partString(str, j, i);
if(isReversible(str2, i))
std::cout << str2 << std::endl;
delete[] str2;
}
}
}
char partString(char str, int index, int len) {
char str2 = new char[len + 1];
for(int i = index; i < index + len; i++)
str2[i - index] = str[i];
str2[len] = '\0';
return str2;
}
bool isReversible(char str, int len) { //确认一个字符串是否是回文串。
char str1, str2;
if(len % 2 == 0) {
str1 = partString(str, 0, len/2);
str2 = revString(partString(str, len/2, len/2), len/2);
} else {
str1 = partString(str, 0, len/2);
str2 = revString(partString(str, len/2 + 1, len/2), len/2);
}
bool b = strEqual(str1, str2, len/2);
delete[] str1, str2;
return b;
}
char revString(char str, int len) { //返回一个前后颠倒的字符串。
char str2 = new char[len + 1];
for(int i = 0; i < len; i++) {
str2[len - i - 1] = str[i];
}
str2[len] = '\0';
return str2;
}
bool strEqual(char str1, char str2, int len) { //确认两个字符串是否相等。
for(int i = 0; i < len; i++)
if(str1[i] != str2[i]) return false;
return true;
}
表示要改写成java难度应该不大 咱写的那么认真还测试编译通过了就采纳了吧~QwQ
public static void main(String[] args) {
Scanner sc=new Scanner(Systemin);
Systemoutprintln("请输入矩阵1行数:");
String a=scnextLine();
boolean b=false;
for(int i=0;i<alength();i++){
if(acharAt(i)!=acharAt(alength()-i-1)){
b=false;
break;
}else{
b=true;
}
}
if(b){
Systemoutprintln(a+"是回文");
}else{
Systemoutprintln(a+"不是回文");
}
}
以上就是关于Java编程-回文矩阵怎么写啊全部的内容,包括:Java编程-回文矩阵怎么写啊、JAVA练习题,编写一程序输出一个字符串中的所有回文串,求大神解答~、如何用java写个程序判断数字是否是回文数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)