① 急求:用c语言计算1至70中是7的倍数的数值之和
#include <stdio.h>
void main()
{
int i=0,sum=0;
for(i=1;i<=70;i++)
{
if(i%7==0)
sum+=i;
}
printf("1至70中是7的倍数的数值之和为%d\n",sum);
}
② C语言程序中,判断这个数是否为7的倍数或者末尾含7的数
if(a%7==0||a%10==7)改成这样,因为‘=’是赋值的意思,‘==’才是判断相等的意思
③ 用C语言求一个数,7的倍数,既可以除8余5,除9余7
1、#include <stdio.h>
int main(void)
{
int i = 7;
while(i % 8 != 5 || i % 9 != 7)
{
i += 7;
}
printf("%d ", i);
return 0;
}
2、int part_1()
{
int i;
scanf("%d",&i);
if(i%5==0&&i%7==0)
return 1;
return 0;
}
(3)c语言m是7的倍数扩展阅读:
C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。[1]
相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。
而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)
合理使用优先级可以极大简化表达式。
④ 帮助编写一个程序,判断任意输入的整数是否是7的倍数
#include <stdio.h>
void main() //c语言程序
{
int n;
printf("请输入一个数\n");
scanf("%d",&n);
if(n%7) //取余运算.如果n被7整除结果为0,否则为正数
printf("不能");
else
printf("能");
}
#include <iostream.h>
void main(){ //c++程序
int n;
cout<<"请输入一个数"<<endl;
cin>>n;
if(n%7) //取余运算.如果n被7整除结果为0,否则为正数
cout<<"不能"<<endl;
else
cout<<"能";
}
⑤ 给你一堆数,从中选若干个数凑出7的倍数,输出其中最大的那个7的倍数 如何编程解决
楼上的解法都正确,但是数字多于30个的时候就会很慢!!
这是背包问题的变形~!!!背包才是正解~~~
先求出所有数字的和 和是7的倍数就最好啦~
不是的话就找出比和小又最接近和的7的倍数 然后背包一下看行不行~
再不行就试次小的数 一直试下去直到行为止 如果一直到7都不行就无解了!
如果使用备忘录算法 由于用的是同一个数组 所以时间复杂度不会很高~~
几百几千个数字都可以秒杀~~
你找一下背包问题,到处都有详细解答~~~
http://..com/question/25002746.html
跟这个问题类似 只要稍微改一下题目和代码就行
改了之后思路如下 帮你换成c语言了 给分啊~~~~~!!!
有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积(正整数)。要求从 n 个物品中,任取若千个装入箱内,使箱子的剩余空间为零。(这里的v就是你的s,这里的n就是你的n)
l 搜索方法 (一堆数的数目很少的时候就可以直接搜索 否则还是要用动归)
void search(int k, int v) {搜索第k个物品,剩余空间为v}
{
int i, j;
if(v<best) best=v;
if v-(s[n]-s[k-1])>=best return; // s[n]为前n个物品的重量和
if(k<=n){
if(v>w[k]) search(k+1,v-w[k]); // w[n]为第n个物品的重量
search(k+1,v);
}
}
best为全局变量,表示箱子的剩余空间的最小值,初始值为设为很大的正数就好
所以 search(n,v)后 best为0则表示有解
2 DP 动态规划(迭代法)
F[I,j]为前i个物品中选择若干个放入使其体积正好为j的标志,为布尔型。
实现:将最优化问题转化为判定性问题
F [I][j] =( F [ I-1 ][ j-w[I] ] || F [ I-1 ][ j ] )(w[I]<=j<=v) 边界:f[0][0]=true;
for(I=1;I<=n;I++)
for(j=w[I];j>=v;j--)
F [I][j] =( F [ I-1 ][ j-w[I] ] || F [ I-1 ][ j ] ) ;
算完之后 F[n][v]为true则有解
3 DP 动态规划(迭代法优化)
优化:当前状态只与前一阶段状态有关,可降至一维。
F[0]=true;
for(I=1;I<=n;I++)
for(j=w[I];j>=v;j--)
F [j] =( F [ j-w[I] ] || F [ j ] );
算完之后 F[v]为true则有解
4 DP 动态规划(备忘录算法)
F为二维数组int F[n][v] 一开始初始化为0
bool dp(int n, int v)
{
if(n==0 && v==0) return 1;
if(n==0 && v!=0) return -1;
if(F[n][v]!=0) return F[n][v];
if(dp(n-1,v-w[n])) return F[n][v]=1;
if(v>=w[n] && dp(n-1,v-w[n])) return return F[n][v]=1;
return F[n][v]=-1;
}
dp(n,v)为1则有解
⑥ c语言编程:求1-100内所有7的倍数
include
"stdio.h"
void
main()
{
int
i
;
i=7;
while(i<=100)
{
if((i%7)==0)
printf("%d",i);
i+=7;
}
}
要求7的倍数,那么就是7不断加上n个7,最后超过了100就不是所求,小于100的就是所求。
⑦ c语言程序设计,编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0
#include <stdio.h>
_Bool fun(int m)
{
int i = 0;
while(m)
{
i += m%10;
m /= 10;
}
if(i%7)
return 0;
return 1;
}
int main()
{
for(int i=100;i<=200;i++){
if(fun(i))printf("%d ",i);
}
return 0;
}
(7)c语言m是7的倍数扩展阅读:
c语言写规则:
1、一个说明或一个语句占一行。
2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
网络-C语言
⑧ 用C语言编写程序:输入整数m,输出他能被7,11,17整除的信息
就是if else if if 语句写很多case
代码如下
# include<stdio.h>
# include<stdlib.h>
int main()
{
int m =0;
printf("请输入一个值");
scanf("%d",&m);
if((m%7==0) && (m%11!=0) && (m%17!=0))
printf("该整数可以被7整除,不能被11和17整除");
else if((m%7==0) && (m%11==0) && (m%17!=0))
printf("该整数可以被7和11整除,不能被17整除");
else if((m%7==0) && (m%11!=0) && (m%17!=0))
printf("该整数可以被7和17整除,不能被11整除");
else if((m%7==0) && (m%11==0) && (m%17==0))
printf("该整数可以同时被7和11和17整除");
else if((m%7!=0) && (m%11==0) && (m%17!=0))
printf("该整数可以11整除,不能被7和17整除");
else if((m%7!=0) && (m%11==0) && (m%17==0))
printf("该整数可以同时被11和17整除,不能被7整除");
else if((m%7!=0) && (m%11!=0) && (m%17==0))
printf("该整数可以同时被17整除,不能被7和11整除");
else
printf("该整数不能被7和11和17整除");
system("pause");
return 1;
}
⑨ C语言的一道题目,看着都觉得不对,我觉得只要是7的倍数又不能被2、3整除的数都会输出啊,但是结果不是。
3个if语句,x先做自增操作再做取余操作的。
28的结果这样来的:
进第一个if前,x=25
if (++x%2==0):x=26,26%2=0判断成立,进入判断语句:
if(++x%3==0):x=27,27%3=0判断成立,进入判断语句:
if(++x%7==0):x=28,28%7=0判断成立,进入打印语句。
70的结果同上分析。
另外,在进入第一个if语句前,x-1的值一定是3的倍数,因为x初始为1,循环有3个++x,加了3次.
⑩ 输入一批正整数(以0或-1为结束标志),统计其中所有7的倍数的个数。c语言做
#include <stdio.h>
#include <math.h>
int isNumber(int n){
if (n%7==0) return 1; else return 0;
}
main(){
int m=0;
int v;
while(1){
if ( scanf("%d",&v)==1){
if (v==0 || v== -1)break;
m=m+isNumber(v);
};
}
printf("total: %d",m);
return 0;
}